日期:2014-05-18  浏览次数:21017 次

急急急,C#的MD5加密密钥能不能修改,如果能的话怎么修改,谢谢!
如题。谢谢阿!

------解决方案--------------------
没听说过修改这个.. 应该是不能的.
------解决方案--------------------
只能重新生成替换原来的
------解决方案--------------------
MD5是没有加密密钥的,除非你是指加密因子或叫链接向量。MD5的原始加密因子是由4个32位寄存器数值构成的。你可以自己实现MD5算法,并在算法中改变原始加密因子。但是不建议这样做,因为造成冲突的可能性会加大,在.net中的MD5类也没有找到提供修改原始因子的方法。
------解决方案--------------------
使用标准的MD5算法是最好的。

------解决方案--------------------
替换
------解决方案--------------------
楼主在银行工作或者国家安全局
------解决方案--------------------
正在使用摸索中
------解决方案--------------------
为什么要使加密结果和默认的不同?是不是担心穷举破解?
一般求散列值的时候可以加入盐值来达到这样的效果,这方面没研究过,搜索一下吧。
------解决方案--------------------
比如你要对登录密码Password进行加密,可以先生成一个Guid,然后将Password和Guid转成byte[]后进行异或操作,然后对结果进行MD5加密,将加密结果和Guid同时保存到数据库中。这个Guid就是盐值。
验证密码时用同样步骤即可。
这样的话只需要:
1、盐值保存足够安全的
2、对原始值加入盐值的操作不容易被人猜到而且源代码需要保密
能做到一条就足够安全,而且即使都没有满足穷举的难度也比单独的MD5加密大的多。

------解决方案--------------------
up....
------解决方案--------------------
如果你想要使用加密结果与默认的不同,可以往后面再加一些嘛,验证时再去掉相应位数的字符
------解决方案--------------------
你随便想个办法变通一下不就行了...
比如先SHA hash过再用MD5...
或者原串后面加上一个固定串再MD5...
------解决方案--------------------
是的,MD5不能修改的,只能重新生成,替换原来的
------解决方案--------------------
只能重新生成替换原来的