首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 安全技术 > 服务器安全 >

请问DES算法的初始密钥和初始向量是如何产生的

2012-03-07 
请教DES算法的初始密钥和初始向量是怎么产生的毕设做了个简单的存储系统,允许用户用DES算法加密自己存储的

请教DES算法的初始密钥和初始向量是怎么产生的
毕设做了个简单的存储系统,允许用户用DES算法加密自己存储的数据。考虑到全部让用户自己选择初始密钥和初始向量太麻烦,于是想加入系统自动生成密钥和初始向量的功能。请问密钥和向量是如何生成的?

[解决办法]
让用户输入口令,从口令派生出密钥,比如 key = MD5(password)
密钥任何地方都不存,生成,使用之后,抛弃
下次用户需要输入正确的password才能解密文件

楼上的方案,没有真正解决问题,只是把问题转嫁到密钥如何保存这个问题上
[解决办法]
楼主的问题可以转化为如何获得随机数:

C语言里有随机函数,如果直接调用,该随机函数每次都返回一个相同的随机数,所以,我们应该加入“随机种子”,这个种子用时间来做,最好不过。加入的方法嘛,给你两个链接,里面有详细的例子。
http://hi.baidu.com/c_program/blog/item/e6abe6278101950b908f9df7.html
http://blog.163.com/liugang_a1/blog/static/1511563620092302321532/

我以前做过类似的,我记得是每次生成4比特随机数。那么,64比特的DES源密钥只需要16次循环即可生成。

热点排行