关于C# DES加密时密钥问题 10

为什么有些des.Key=ASCIIEncoding.ASCII.GetBytes(sKey);des.IV=ASCIIEncoding.ASCII.GetBytes(s... 为什么有些des.Key = ASCIIEncoding.ASCII.GetBytes(sKey);
des.IV = ASCIIEncoding.ASCII.GetBytes(sKey); 是这样写
而有一些是这样写 des.Key = ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8));
des.IV = ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8));
区别在于下面这个多了System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8)
我想知道为什么?
加密函数 Encrypt(string Text, string sKey) //其中Text表示要加密的字符串,sKey表示密钥
还有在我把一串字符加密之后,假如这个密钥为"Key",我想知道这个密钥保存在哪儿呢?
展开
 我来答
freeeeeewind
2014-10-12 · TA获得超过1万个赞
知道大有可为答主
回答量:3227
采纳率:94%
帮助的人:1309万
展开全部
1)DES加密程序中,保存key和iv有两种做法
【Ⅰ】将key和iv“写死”在在程序中,一旦程序编译发布后,key和iv就无法改变
【Ⅱ】将保存key和iv保存在配置文件中,程序发布后,可以随时改变配置文件中的key和iv
为了增加安全性,在第二种方法中,配置文件中保存的不是key和iv的明文,而是用md5加密后的key和iv。这样,即使你的程序发布出去,别人也无法知道程序中真正使用的key和iv是什么,增加了安全性。
System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8)的作用是从配置文件取出加密的key和iv,然后用md5将解密,从而得到真正的key和iv
2)明白了1)后,第二个问题就容易理解了。
追问

//以下是加密和解密方法

不好意思,代码实在有点多,字数有限,只能贴图了

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式