md5加密以后的字符串长度

我下了一段用JAVA实现MD5加密的算法,不管输入字符串多长,加密后的字符串长度都是32位,我在网上看见有人说加密后的长度的为128位,到底是多少位?还是可以设置加密后字符串的长度?

加密后为128位(bit),按照16进制(4位一个16进制数)编码后,就成了32个字符。MD5并不是加密算法zhidao,而是摘要算法。加密算法是可逆的,摘要算法是理专论上不可逆的,详细步骤:

1、md5算法主要应用在密码领域,为了防止明文传输密码的危险性,一般会用密码的md5值来代替密码本身。

2、md5算法的工具可以帮助我们计算字符串所对应的md5值。

3、首先创建一个MD5Utils工具类。

4、然后来写md5算法,事实上你不需要md5算法具体是怎么实现的,这里我们也只是调用了java自带的md5算法,只不过对其结果进行了优化,转换成了16进制的字符串了而已。

5、虽然md5本身是不可逆的,但是因为其唯一性,会遭到遍历破解,所以一般使用md5的时候还会进行加盐操作,即在md5运算结果上再加入自己的加密算法,例如这里为将结果都加上字符串yan,这样就不容易被破解了,加盐的加密算法也可以自己直接封装在工具类中。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-12-16
概念普及一下:
MD5 并不是加密算法,而是摘要算法。加密算法是可逆的,摘要算法是理论上不可逆的。如果说MD5是加密算法,那还不如称他是超级压缩算法呢,因为你输入任意长度的明文给他,结果都是一个定长16 、32、64。本回答被提问者采纳
第2个回答  2017-12-13
加密后为128位(bit),按照16进制(4位一个16进制数)编码后,就成了32个字符,而不是32位
第3个回答  2008-10-05
MD5 加密有32位 16位的
16位就是32位的中间16位
没听过128位的~
相似回答