社区
C++ 语言
帖子详情
加密解密文件时如何处理文件结尾?
elated
2011-05-04 10:52:08
一种加密算法,要求输入64位明文。用这个算法加密文件。文件大小可能不一定是八字节(64位)的整数倍。这时,把不足64位的尾部填为0,填满64位后作为明文加密。
但我解密时,问题就来了。那些多填充进去的0怎么去掉呢?怎么知道它是被我后添充进去的,而不是原来文件中就存在的呢?谁能保证原来的文件结尾不是一堆0?
有什么好的设计方法可以解决这种问题么?不知道我把问题描述清楚没有。
...全文
317
10
打赏
收藏
加密解密文件时如何处理文件结尾?
一种加密算法,要求输入64位明文。用这个算法加密文件。文件大小可能不一定是八字节(64位)的整数倍。这时,把不足64位的尾部填为0,填满64位后作为明文加密。 但我解密时,问题就来了。那些多填充进去的0怎么去掉呢?怎么知道它是被我后添充进去的,而不是原来文件中就存在的呢?谁能保证原来的文件结尾不是一堆0? 有什么好的设计方法可以解决这种问题么?不知道我把问题描述清楚没有。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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的整数倍)来记录你的长度 就是有多少位
利用"流"实现exe
文件
的
加密解密
利用"流"实现exe
文件
的
加密解密
使用本方法加密exe
文件
时
,要先建立两个exe
文件
,一个用来添加资源到另外一个exe
文件
里 面,称为添加程序。另一个被添加的exe
文件
称为头
文件
,该
文件
的功能是在解密
时
把添加到自己里面的
文件
读出来。加密
时
,首先建立头
文件
,再将明文追加到 头
文件
尾部并设置一个密码,生成密文;解密
时
,先校验密码,如正确,则将密文从头
文件
中读出,生成明文,否则报错。为了exe
文件
java
加密解密
_Java实现
文件
的加密与解密
最近在做一个项目,需要将资源
文件
(包括图片、动画等类型)进行简单的加密后再上传至云上的服务器,而在应用程序中对该资源使用前先将读取到的
文件
数据进行解密以得到真正的
文件
信息。此策略的原因与好处是将准备好的资源存储在云上,使用
时
通过网络进行读取即可,减少了应用程序本身的大小。这一点对于移动应用尤其重要,特别是在资源量较大且需要对其进行保护的
时
候。毕竟在目前所处的大环境下,要想复制一款软件不难,那真正宝...
13、
加密解密
文件
与英文检测程序详解
本文详细介绍了如何使用Python实现
文件
的加密与解密,并结合英文检测程序自动判断解密结果是否为有效英文文本。内容涵盖
文件
读写、用户输入
处理
、运行
时
间测量及基于词典的英文识别技术,配有流程图和代码示例,适用于密码学初学者和自动化文本
处理
场景。
Java实现
文件
的加密与解密
转载自:https://www.cnblogs.com/tgyf/p/4676878.html 先对
文件
与加密的相关知识做一个极为简单的科普(知道的可以跳过)。
文件
与字串 A、
文件
的操作流程一般为:打开–>读取–>对内容进行变换–>写入–>关闭。 B、常规性
文件
操作会用到的类有五个:File,InputStream,OutputStream,FileInoutStre...
【UGF】AssetBundle资源
加密解密
自定义一个编辑器类AssetBuildHandler : IBuildEventHandler, 继承IBuildEventHandler,实现OnPostprocessPlatform接口,工具打包出AB
文件
后会回调此方法,在方法中遍历加密AB
文件
;首先在AB编辑器中,设置所有AB包的加载方式为Load From Memory,此方式会走LoadResourceAgentHelper的ParseBytes(byte[] bytes)方法,需重写此方法
处理
解密逻辑;
C++ 语言
65,211
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章