社区
C++ 语言
帖子详情
加密解密文件时如何处理文件结尾?
elated
2011-05-04 10:52:08
一种加密算法,要求输入64位明文。用这个算法加密文件。文件大小可能不一定是八字节(64位)的整数倍。这时,把不足64位的尾部填为0,填满64位后作为明文加密。
但我解密时,问题就来了。那些多填充进去的0怎么去掉呢?怎么知道它是被我后添充进去的,而不是原来文件中就存在的呢?谁能保证原来的文件结尾不是一堆0?
有什么好的设计方法可以解决这种问题么?不知道我把问题描述清楚没有。
...全文
245
10
打赏
收藏
加密解密文件时如何处理文件结尾?
一种加密算法,要求输入64位明文。用这个算法加密文件。文件大小可能不一定是八字节(64位)的整数倍。这时,把不足64位的尾部填为0,填满64位后作为明文加密。 但我解密时,问题就来了。那些多填充进去的0怎么去掉呢?怎么知道它是被我后添充进去的,而不是原来文件中就存在的呢?谁能保证原来的文件结尾不是一堆0? 有什么好的设计方法可以解决这种问题么?不知道我把问题描述清楚没有。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
baggiowangyu
2011-05-11
打赏
举报
回复
1. 记录加密前后明文、密文的长度
2. 将长度附加到密文尾部,补足位数
3. 解密前先读取密文长度,用该长度来截断
4. 解密后再用明文长度截断,得到原始明文
Meteor_Code
2011-05-10
打赏
举报
回复
补0,一般是这个做法,同时也要将补的字节数加进去
比如,你需要补6个字节,你就补5个0和一个字节6,解码的时候看最后一个字节来决定去掉几个字节
如果你的明文正好8字节对齐,你就补7个0一个字节的8
elated
2011-05-10
打赏
举报
回复
[Quote=引用 7 楼 a070104020016 的回复:]
请问你做的是数字签名吗
[/Quote]
不是
a070104020016
2011-05-09
打赏
举报
回复
请问你做的是数字签名吗
elated
2011-05-08
打赏
举报
回复
[Quote=引用 4 楼 aiwnx 的回复:]
是数据流的对称式加密吗?楼主的问题具有一定普遍性。这个问题和加密算法本身无关,而需要一些额外的工作。比如在加密函数的参数中增加原始数据的大小及加密后的数据大小等等。或者规定填充字节满足一定特点也可以。
[/Quote]
对称加密
qq120848369
2011-05-05
打赏
举报
回复
[Quote=引用 2 楼 loaden 的回复:]
使用一个特定结构体保存与加密相关的各种信息,包含文件长度。
然后写在加密文件的最后面。
解密时先读出这个结构体中的内容,再处理。
[/Quote]
文件读写不能精确到位,最多到字节。
就算你最后一个字节用了2位,其他都是0,那一个字节你也要一起取走。
所以,记录一下你的文件一共有多少位就可以了。
只要读的字节数已经足够位数了,就停下,然后由程序分析最后一个字节里哪些位是没用的。
再就是Loaden说的,在文件末尾写入一个int记录一下有多少位,一个int固定4个字节,你读文件前定位到文件
末尾,然后前移4字节,然后读一下就知道文件有n位了,n/8向上取整就是要从文件开头读多少个字节了。
n/8向上取整就是如果n%8!=0,结果则是(n/8)+1,否则是n/8.
aiwnx
2011-05-05
打赏
举报
回复
是数据流的对称式加密吗?楼主的问题具有一定普遍性。这个问题和加密算法本身无关,而需要一些额外的工作。比如在加密函数的参数中增加原始数据的大小及加密后的数据大小等等。或者规定填充字节满足一定特点也可以。
luciferisnotsatan
2011-05-05
打赏
举报
回复
[Quote=引用 1 楼 hnuqinhuan 的回复:]
这个属于密码学的知识 你确定每一块 然后再在最后面专门用一块(64位或者128位 64的整数倍)来记录你的长度 就是有多少位
[/Quote]
++
「已注销」
2011-05-05
打赏
举报
回复
使用一个特定结构体保存与加密相关的各种信息,包含文件长度。
然后写在加密文件的最后面。
解密时先读出这个结构体中的内容,再处理。
無_1024
2011-05-04
打赏
举报
回复
这个属于密码学的知识 你确定每一块 然后再在最后面专门用一块(64位或者128位 64的整数倍)来记录你的长度 就是有多少位
Android
文件
的加密与解密
Demo已放到Github:https://github.com/ZhangSir/TestCipher
文件
加解密的流程及原理 1、加密方法:存储
文件
时
,从输入流中截取
文件
的字节数组,对字节数组进行加密,至于加密的方式和算法就可以视需求而定了,然后把加密后的字节数组写入到
文件
中,最后生成加密后的
文件
; 2、解密方法:同加密方法一样,只不过是对字节数据进行解密,最后生成明文
文件
;
Java实现
文件
的加密与解密
转载自:https://www.cnblogs.com/tgyf/p/4676878.html 先对
文件
与加密的相关知识做一个极为简单的科普(知道的可以跳过)。
文件
与字串 A、
文件
的操作流程一般为:打开–>读取–>对内容进行变换–>写入–>关闭。 B、常规性
文件
操作会用到的类有五个:File,InputStream,OutputStream,FileInoutStre...
go GCM
加密解密
gin中间件
加密解密
,gin
文件
流
处理
要给已有的系统启用
加密解密
,目前推荐的是aes的gcm模式的加密和解密,在微服务如果向前有公共方法
处理
读取数据和写返回数据,那么比较简单,修改以前的公共方法,但是这样本地调试平
时
肯定是明文,所以要加判断,如果以前的读数据和写数据是五花八门那就比较麻烦,在微服务体系里面一般有网关这个服务,所以加密和解密就放在网关服务,大致如下: 常规的请求有GET,POST JSON, POST file,以及POST Form表单,返回一般是json 或者下载
文件
流,所以我们需要截获请求流和返回流,收到请求流解密数
java下载
文件
时
解密,Java实现
文件
的加密与解密
最近在做一个项目,需要将资源
文件
(包括图片、动画等类型)进行简单的加密后再上传至云上的服务器,而在应用程序中对该资源使用前先将读取到的
文件
数据进行解密以得到真正的
文件
信息。此策略的原因与好处是将准备好的资源存储在云上,使用
时
通过网络进行读取即可,减少了应用程序本身的大小。这一点对于移动应用尤其重要,特别是在资源量较大且需要对其进行保护的
时
候。毕竟在目前所处的大环境下,要想复制一款软件不难,那真正宝...
java上传加密_Java实现
文件
的加密与解密
最近在做一个项目,需要将资源
文件
(包括图片、动画等类型)进行简单的加密后再上传至云上的服务器,而在应用程序中对该资源使用前先将读取到的
文件
数据进行解密以得到真正的
文件
信息。此策略的原因与好处是将准备好的资源存储在云上,使用
时
通过网络进行读取即可,减少了应用程序本身的大小。这一点对于移动应用尤其重要,特别是在资源量较大且需要对其进行保护的
时
候。毕竟在目前所处的大环境下,要想复制一款软件不难,那真正宝...
C++ 语言
65,189
社区成员
250,526
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章