MD5是一种单向的加密算法,本身会丢失原始信息,并不能用于数据传输的加解密,在网络通信中却有一席之地,如 微信支付 中用于签名算法。
无论输入数据大小,输出总是128位的信息,一般用16进制显示。
这个概率有多小,形象的描述是“比连续中500万年500万大奖的概率还小”,相当于几十亿台电脑中有几十亿个文件,才有可能相同,一般的数据表完全不用考虑这个问题。
MD5是单向算法,无法获得原始值,但现在有解密平台保留了很多常见值的加密值,当量到一定范围时,相当于可以从MD5查询出原值。
利用MD5的特性2和3,在网络传输中,将接收到的数据做MD5运算,如果MD5值不匹配,则认为数据被篡改。
利用MD5的稳定性和分散性,可以在数组结构中获得一张“平衡”的表,以加快查找数据的速度。
调用
MD5算法只是哈希算法中的一种,常见的还有 MD4,SHA-0, SHA-1,SHA-2。在安全要求更高的场景中,推荐SHA-2算法。
常用的加密算法:SHA、MD5、Hmac
常用的加密/解密算法: AES、DES
常用的编码解码算法: UrlDecode、Base64
MD5不可逆 加密后不可解密!
很多网站能解密其实不应该说是解密。应该叫撞库。
网站数据库应该是计算了或者存储了大量的文本加密后的MD5值
当用户输入MD5值以后,网站会去数据库找MD5值对应的源文本。这个原理~
但MD5终究是不可逆的,一些大型的数据文本他是解密不了滴,所以网站会提示解密失败、
一些简单的英文数字标点组合能还是可以的