首页 新闻 赞助 找找看

membership中Hashed加密问题

0
悬赏园豆:100 [已关闭问题] 关闭于 2007-12-03 11:28
参照msdn中membership<br>在 webconfig中 我配置了<br>&lt;machineKey <br>&nbsp; validationKey="AutoGenerate" <br>&nbsp; decryptionKey="AutoGenerate,IsolateApps"&nbsp;&nbsp;&nbsp; <br>&nbsp; validation="SHA1" <br>&nbsp;&nbsp; decryption="Auto" <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /&gt;<br><br>&nbsp; System.Security.Cryptography.HMACSHA1 hash = new System.Security.Cryptography.HMACSHA1();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hash.Key = HexToByte(machineKey.ValidationKey);<br>&nbsp;hash.Key = HexToByte(machineKey.ValidationKey); <br>在这调用HexToByte方法<br><br>private byte[] HexToByte(string hexString)<br>//这里hexString应该是AutoGenerate<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; byte[] returnBytes = new byte[hexString.Length / 2];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (int i = 0; i &lt; returnBytes.Length; i++)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; returnBytes[i] =Convert.ToByte(hexString.Substring(i * 2, 2), 16);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return returnBytes;<br>&nbsp;&nbsp;&nbsp; }<br>这里提示不符合要求的 字符,我也查看了ToByte方法,如果字符中大于16进制的f的 时候他就报这个错误(不符合要求的字符)<br>但是在webconfig中 &lt;machineKey &nbsp; validationKey="AutoGenerate"<br>validationKey必须是AutoGenerate,<br><br>我想既然是msdn中的例子,应该是测试过的,那为什么会出现这样的情况<br>请 大侠指教<br>
问题补充: validationKey="AutoGenerate" 我也改成别的过,但是系统提示要AutoGenerate,里面的gto等字符已经不允许了 2楼的思路也是我开始这样想的,可是你可以看下msdn中的membership的例子,他用的access,就是测试了不成功还提示那样的错误,就搞定我郁闷。呵呵,加密要耗资源,当然在正式的项目中不可能这么做,现在就自己测试的问题!
mythzz的主页 mythzz | 初学一级 | 园豆:2
提问于:2007-11-30 15:45
< >
分享
所有回答(2)
0
validationKey必须是hex的,难道自动生成的不是hex吗?
Jeffrey Zhao | 园豆:1629 (小虾三级) | 2007-11-30 15:59
0
随机密钥怎么可能通过machineKey.ValidationKey的方式获取?? 你的代码中的“Convert.ToByte(hexString.Substring(i * 2, 2), 16); ”如果真的是MSDN的,要么就是你理解错了,要么就是例子错了 因为machineKey.ValidationKey仅仅是获取webconfig中的一个字符串,仅仅如此,不然何苦要辗转一大圈的去webconfig中才能拿到machinekey?如果次次加密都这样的话,性能会慢到吐血~~~ 对于随机密钥,只能通过反射的方式直接从machinekeysection的一个静态字段(MS还有一个非静态的属性也行) 当然,如果你能找到办法从LSA中获取随机密钥,应该也可以。(不过,俺没那本事^_^)
电机拖动 | 园豆:1295 (小虾三级) | 2007-11-30 21:12
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册