社区
C语言
帖子详情
用异或法加密文件,密钥的选取用rand()的疑问?
topcool99
2004-10-19 07:40:09
因为使用的公式是:
(A xor B)xor B=A的原理。
必须两次密钥相同才可能用再次加密的方法解密。
用rand()在随机生成密钥的话,怎样保证算法的正确?
...全文
115
5
打赏
收藏
用异或法加密文件,密钥的选取用rand()的疑问?
因为使用的公式是: (A xor B)xor B=A的原理。 必须两次密钥相同才可能用再次加密的方法解密。 用rand()在随机生成密钥的话,怎样保证算法的正确?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lifan5748
2004-10-19
打赏
举报
回复
srand(j)这个函数已经初始化了随即数,其中的j是种子,只要每次j相同,用rand生成的随机数也相同
xdspower
2004-10-19
打赏
举报
回复
是这样的,现在一般编程环境提供的随机数函数发生器都是伪随机数发生器,而且是环境无关的,它们产生的序列在初始条件相同的时候是相同的,也就是说在不设置srand()时,或者把srand(a)中的变量a相同时产生的随机数序列是完全相同的,这样做其实是有意义的,他可以方便检查使用了随机数的程序是否正常工作,而且只要设置了srand ——一般是设置成系统时间值,则变成真正的"随机数发生器"(其实还是伪随数序列发生器,毕竟第一个值确定了后面的值也确定了),如果你要更随机的数字,你该在每次使用rand之前再用一次srand设置新的种子(一般程序没有这个必要的,而且影响效率)。
所以只要你记住了那个j,则rand可以产生一样的"随机数"序列。
topcool99
2004-10-19
打赏
举报
回复
我的疑问::?????????
对 那样的话,你需要把密钥记录下来,以便于解密时使用。
的回复:
是的,
但是那个rand()怎么能那样使用呢?
道理是什么?
scanf("%ld",&j);
srand(j);
c=rand();
ch=fgetc(f1);
ch=ch^c;
再写入f2中
解密时,在输入密码J,执行一遍就可以了。
《参见c百例》
DiabloWalkOnTheEarth
2004-10-19
打赏
举报
回复
xor是不能算加密地.咔咔
icymirror
2004-10-19
打赏
举报
回复
那样的话,你需要把密钥记录下来,以便于解密时使用。
操作系统实验
建议
加密
过程使用按字符进行
异或
的方式处理,也可以是仿射
加密
方式,比如把所有的字符做一个平移变换:A-A+C(A为任意字母表中的字母,C为常数,为了防止越界或溢出,可以改造其为A-(A+C)MOD 256),这里要...
信息安全技术 || DES
加密
算
法
算
法
原理: DES算
法
是一种对称
加密
算
法
,以64位为分组对数据
加密
,
加密
和解密用的是同一个算
法
。...首先要生成一套
加密
密钥
,从用户处取得一个64位长的密码口令,然后通过等分、移位、
选取
和迭代形成一...
对称密码---流密码
time pad) 又称Vernam
加密
法
将明文与随机生成的
密钥
进行
异或
运算来实现
加密
和解密
密钥
:与明文等长、完全随机、只使用一次,并且发送者和接收者在事先共享同一
密钥
。 不能提供完整性验证和认证 !...
DES
加密
算
法
解析
总的来说,DES
加密
的过程就是通过一系列置换、
异或
、扩展等运算,将明文分成若干个小块,然后根据主
密钥
生成一系列的轮
密钥
,利用轮
密钥
对每个小块进行
加密
,最终将
加密
结果重新组合成一个整体,得到密文。
【图像
加密
】混沌系统图像
加密
解密【含GUI Matlab源码 147期】
混沌系统图像
加密
解密 完整的代码,方可运行;可提供运行操作视频!适合小白!
C语言
69,382
社区成员
243,073
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章