首页 新闻 搜索 专区 学院

MD5如何自己指定密钥?高手请进......

0
悬赏园豆:10 [已解决问题] 解决于 2011-10-25 09:35

我知道MD5是一种不可逆的加密算法(但是很汗的是网上似乎有MD5解密算法,不可逆怎么解密呢?......),好像.net里面有提供一个现成的算法可以调用,但是那种算法是公共的算法,还是可以从字典查出原文的吧?我想做一个可以自己指定密钥的MD5算法,请问各位高手有没有这样的例子呢?

疾风中的劲草的主页 疾风中的劲草 | 初学一级 | 园豆:186
提问于:2011-10-19 16:16
< >
分享
最佳答案
0

我觉得可以先用MD5加密,然后用DES算法,自己设置密匙进行再次加密.
MD5貌似没听说自己设置密匙的...

收获园豆:2
kaleyroy | 初学一级 |园豆:160 | 2011-10-19 23:33
其他回答(4)
0

你可以用SHA指定密钥加密,然后再用MD5加密,再用SHA加密,解不出来滴。

收获园豆:2
LCM | 园豆:6876 (大侠五级) | 2011-10-19 16:37
0

(1)MD5肯定是不可逆的,网上的所谓MD5解密,其实就是查表,比如把12345,qwert等字符串MD5后建立一个对应关系备查。下次看到一个加密的MD5串,就去表里查明文。

(2)自己指定密钥也很简单。比如我要提交一个数字12345给你,你收到之后如何确认是我给你的而不是别人给你的呢?我们俩可以约定一个密钥,只有我们知道,比如a$sd12_(一般比较复杂),然后我提交给你的是“明文12345”和“12345+密钥之后的MD5结果”,你收到之后用12345和密钥做MD5,跟我提交给你的MD5做比对,一样的话就可以证明是我提交给你的数据了。

收获园豆:2
水牛刀刀 | 园豆:6350 (大侠五级) | 2011-10-19 17:48

如何约定密钥呢?

支持(0) 反对(0) 疾风中的劲草 | 园豆:186 (初学一级) | 2011-10-20 10:16

@stone Jin: 约定啊,口头啊,IM啊一类的啊。

支持(0) 反对(0) 水牛刀刀 | 园豆:6350 (大侠五级) | 2011-10-22 01:01
-1

MD5是哈希算法,也就是 从明文A到密文B很容易,但是从密文B到明文A几乎不可能

也就是说,给你密文,是几乎无法通过解密来得到明文的。

这个一般用于存储密码。也就是数据库里存的是密文,管理员只能看到密文,而看不到明文。

 

解密过程:通过不断尝试密码字典,使用MD5计算得到密码,然后比对密文是否一致,如果一致,则说明该密文的明文是当前尝试的密码

 

所以,密码的保护是及其重要的,不管使用什么加密算法,都要保护好密码——为保护好密码,密码本身也要设置得复杂一些。

 

楼主是怀疑MD5算法是公开的,那么谁都知道了算法,就不安全了。

我们知道,加密有两种方式,一种是基于密码保密,一种是基于算法保密。

密码保密的方式,比算法保密更可靠。

MD5就是基于密码保密的,完全不需要怀疑MD5算法。

收获园豆:2
小彬 | 园豆:947 (小虾三级) | 2011-10-21 13:17

MD5是签名算法,没密码...

支持(0) 反对(0) egmkang | 园豆:-734 (初学一级) | 2011-10-24 15:40

@egmkang: MD5面向的操作对象一般就是密码

支持(0) 反对(0) 小彬 | 园豆:947 (小虾三级) | 2011-10-25 09:43
0

MD5是签名,就是输入转化成HashCode,可以这么理解.

如果需要解密的,看是需要对称还是非对称.

对的话,DES,AES,都可以;

非对称的话,RSA..

收获园豆:2
egmkang | 园豆:-734 (初学一级) | 2011-10-24 15:41
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册