md5的全稱是md5信息摘要算法(英文:MD5 Message-Digest Algorithm ),一種被普遍使用的密碼散列函數,能夠產生一個128位(16字節,1字節8位)的散列值(常見的是用32位的16進製表示,好比:0caa3b23b8da53f9e4e041d95dc8fa2c),用於確保信息傳輸的完整一致。php
md5將整個文件當作一個大文本信息,經過不可逆的字符串變換算法,產生一個惟一的MD5信息摘要。文件的md5相似於人的指紋,在世界上是獨立無二的,若是任何人對文件作了任何改動,其md5的值也就是對應的「數字指紋」都會發生變化。算法
對MD5算法簡要的敘述能夠爲:MD5以512位分組來處理輸入的信息,且每一分組又被劃分爲16個32位子分組,通過了一系列的處理後,算法的輸出由四個32位分組組成,將這四個32位分組級聯後將生成一個128位散列值。 安全
md5與對稱和非對稱加密算法不一樣,這兩種密碼是防止信息被竊取,而摘要算法的目標是用於證實原文的完整性。服務器
沒有系統有辦法知道md5原來的文字是什麼。函數
md5碼具備高度的散列性,沒有規律可循,哪怕原信息只有一點點的變化,好比多個空格,那麼就會致使md5發生巨大變化,也能夠說產生的md5碼是不可預測的。加密
任意長度的數據,算出的md5值得長度都是固定的。.net
已知原數據和其md5的值,想找到一個具備相同md5值得數據(即僞造數據)是很是困難的。blog
只要算法正確,都是同樣的。md5
不會。字符串
除了MD5,還有更安全的SHA-1,SHA-2(包括SHA-22四、SHA-25六、SHA-384,和SHA-512 ),SHA-3,RIPEMD-160等哈希加密算法。
關於王小云破解MD5之我見 :https://blog.csdn.net/raptor/...
MD5做用有哪些:https://blog.csdn.net/jike_ya...
MD5算法原理及其實現:https://blog.csdn.net/u012611...