我觉得可以先用MD5加密,然后用DES算法,自己设置密匙进行再次加密.
MD5貌似没听说自己设置密匙的...
你可以用SHA指定密钥加密,然后再用MD5加密,再用SHA加密,解不出来滴。
(1)MD5肯定是不可逆的,网上的所谓MD5解密,其实就是查表,比如把12345,qwert等字符串MD5后建立一个对应关系备查。下次看到一个加密的MD5串,就去表里查明文。
(2)自己指定密钥也很简单。比如我要提交一个数字12345给你,你收到之后如何确认是我给你的而不是别人给你的呢?我们俩可以约定一个密钥,只有我们知道,比如a$sd12_(一般比较复杂),然后我提交给你的是“明文12345”和“12345+密钥之后的MD5结果”,你收到之后用12345和密钥做MD5,跟我提交给你的MD5做比对,一样的话就可以证明是我提交给你的数据了。
如何约定密钥呢?
@stone Jin: 约定啊,口头啊,IM啊一类的啊。
MD5是哈希算法,也就是 从明文A到密文B很容易,但是从密文B到明文A几乎不可能
也就是说,给你密文,是几乎无法通过解密来得到明文的。
这个一般用于存储密码。也就是数据库里存的是密文,管理员只能看到密文,而看不到明文。
解密过程:通过不断尝试密码字典,使用MD5计算得到密码,然后比对密文是否一致,如果一致,则说明该密文的明文是当前尝试的密码
所以,密码的保护是及其重要的,不管使用什么加密算法,都要保护好密码——为保护好密码,密码本身也要设置得复杂一些。
楼主是怀疑MD5算法是公开的,那么谁都知道了算法,就不安全了。
我们知道,加密有两种方式,一种是基于密码保密,一种是基于算法保密。
密码保密的方式,比算法保密更可靠。
MD5就是基于密码保密的,完全不需要怀疑MD5算法。
MD5是签名算法,没密码...
@egmkang: MD5面向的操作对象一般就是密码
MD5是签名,就是输入转化成HashCode,可以这么理解.
如果需要解密的,看是需要对称还是非对称.
对的话,DES,AES,都可以;
非对称的话,RSA..