关于md5 加密算法的困惑。
对密文A进行加密,用Key,IV,密文A 通过md5加密后,生成加密密文B。将B放到license.txt文件中后,解密的时候,我需要key,iv及license.txt,解密后,跟密文A进行比较,如果相等那么通过,如果不等则不通过。
我的问题是:一般解密dll都是发到客户端给客户使用的,如果客户反编译我的代码,他就能知道key,iv,然后通过密文license.txt,他自己就能解密得到明文A,然后根据明文A,iv,及客户端Key(mac地址等),不就可以破译我的密码了吗? --------------------编程问答-------------------- md5加密是不可逆的啊 --------------------编程问答-------------------- ",他自己就能解密得到明文A"这是不可能的,就目前的技术来说MD5加密是不可逆的,所以这个不是你该担心的 --------------------编程问答-------------------- 我的意思,我解密后,不是需要跟明文A进行比较吗? --------------------编程问答-------------------- 就好比是这样的,在客户端,解密后 得到字符串 string aaa = 解密字符串
if(aaa == "明文")
通过
else
不通过。
这样的话,通过反编译,不就可以得到明文? 都不用解密。 --------------------编程问答-------------------- 不知道 是否理解错误。 --------------------编程问答-------------------- 其实你既然都用MD5来加密了,人家知道不知道你的密码又有什么关系呢,就算知道他也看不懂原文是什么啊
你这样做最多只能确定原文是否有被修改过而已 --------------------编程问答-------------------- 恩 是的 MD5是不可逆的
但是不排除暴力破解 有一部分明文(特别是比较简单的)还是有可能破解的
如果是重要数据 建议不要单纯的只用MD5加密 可以进一步处理下
至于DLL破解 可以考虑下代码混淆 听说还是容易破解 但是总比没的强 --------------------编程问答-------------------- 哪解密后 是不是要跟明易做图比较? --------------------编程问答-------------------- 比较的是md5加密后的字符
--------------------编程问答-------------------- 我程序处理是这样的: 程序只有一个明文,客户端要使用,需要将他的Mac地址给我,我有一个密码加密器,就是根据md5算法,将明文,客户端mac,然后自定义一个IV,生成密文,保存成license.txt发给客户端。
在程序中加载时候,读取license文件,然后读取客户端mac,然后用自定义的Iv解密,这样就能得到明文。
这样处理,是否合理? --------------------编程问答-------------------- 解密dll为什么要给客户端,用web service解密再返回给客户端不就行了。 --------------------编程问答-------------------- 在客户端运行 不就需要在客户端解密吗? 用webserivice一旦用户不能上网或者远程服务down掉不就不能用了吗 --------------------编程问答-------------------- LZ一直在说解密什么的,都说了MD5是不能解密的,比如你字段aaa用MD5加密之后为AAA,传过去,人家比较的就是他的字段用MD5加密后是不是AAA,一样的话说明加密前的字段是一样的,因为MD5加密之后的字段都是不重复的(当然现在好像有个女博士找到了个查找重复MD5代码的算法)
补充:.NET技术 , C#