1樓:小炫馬紮
md5加密演算法原理md5的全稱是message-digest algorithm 5(資訊-摘要演算法),在90年代初由mit laboratory for computer science和rsa data security inc的ronald l. rivest開發出來,經md2、md3和md4發展而來。它的作用是讓大容量資訊在用數字簽名軟體簽署私人密匙前被"壓縮"成一種保密的格式(就是把一個任意長度的位元組串變換成一定長的大整數)。
不管是md2、md4還是md5,它們都需要獲得一個隨機長度的資訊併產生一個128位的資訊摘要。雖然這些演算法的結構或多或少有些相似,但md2的設計與md4和md5完全不同,那是因為md2是為8位機器做過設計優化的,而md4和md5卻是面向32位的電腦。這三個演算法的描述和c語言源**在internet rfcs 1321中有詳細的描述( http:
//www.ietf.org/rfc/rfc1321.
txt),這是一份最權威的文件,由ronald l. rivest在2023年8月向ieft提交。. .
2樓:佛陀娃娃高朝暉
簡單講解ios應用開發中的md5加密的相關使用:
誰能通俗易懂地講講md5加密原理? 5
3樓:月似當時
md5演算法的原理可簡要的敘述為:md5碼以512位分組來處理輸入的資訊,且每一分組又被劃分為16個32位子分組,經過了一系列的處理後,演算法的輸出由四個32位分組組成,將這四個32位分組級聯後將生成一個128位雜湊值。
在md5演算法中,首先需要對資訊進行填充,這個資料按位(bit)補充,要求最終的位數對512求模的結果為448。也就是說資料補位後,其位數長度只差64位(bit)就是512的整數倍。
即便是這個資料的位數對512求模的結果正好是448也必須進行補位。
擴充套件資料
當需要儲存某些密碼資訊以用於身份確認時,如果直接將密碼資訊以明碼方式儲存在資料庫中,不使用任何保密措施,系統管理員就很容易能得到原來的密碼資訊,這些資訊一旦洩露, 密碼也很容易被破譯。為了增加安全性,有必要對資料庫中需要保密的資訊進行加密,這樣,即使有人得到了整個資料庫,如果沒有解密演算法,也不能得到原來的密碼資訊。
md5演算法可以很好地解決這個問題,因為它可以將任意長度的輸入串經過計算得到固定長度的輸出,而且只有在明文相同的情況下,才能等到相同的密文,並且這個演算法是不可逆的,即便得到了加密以後的密文,也不可能通過解密演算法反算出明文。
這樣就可以把使用者的密碼以md5值(或類似的其它演算法)的方式儲存起來,使用者註冊的時候,系統是把使用者輸入的密碼計算成 md5 值,然後再去和系統中儲存的 md5 值進行比較,如果密文相同,就可以認定密碼是正確的,否則密碼錯誤。
通過這樣的步驟,系統在並不知道使用者密碼明碼的情況下就可以確定使用者登入系統的合法性。這樣不但可以避免使用者的密碼被具有系統管理員許可權的使用者知道,而且還在一定程度上增加了密碼被破解的難度。
md5 演算法還可以作為一種電子簽名的方法來使用,使用 md5演算法就可以為任何檔案(不管其大小、格式、數量)產生一個獨一無二的「數字指紋」,藉助這個「數字指紋」,通過檢查檔案前後 md5 值是否發生了改變,就可以知道原始檔是否被改動。
4樓:匿名使用者
md5將任意長度的「位元組串」變換成一個128bit的大整數,並且它是一個不可逆的字串變換演算法,換句話說就是,即使你看到源程式和演算法描述,也無法將一個md5的值變換回原始的字串,從數學原理上說,是因為原始的字串有無窮多個,這有點象不存在反函式的數學函式。
md5的典型應用是對一段message(位元組串)產生fingerprint(指紋),以防止被「篡改」。舉個例子,你將一段話寫在一個叫readme.txt檔案中,並對這個readme.
txt產生一個md5的值並記錄在案,然後你可以傳播這個檔案給別人,別人如果修改了檔案中的任何內容,你對這個檔案重新計算md5時就會發現。如果再有一個第三方的認證機構,用md5還可以防止檔案作者的「抵賴」,這就是所謂的數字簽名應用。
ios 應用的簽名原理是什麼?
5樓:亥著
ios簽名可分為企業簽名、超級簽名。
企超級簽名是使用個人開發者賬號,新增蘋果裝置的udid,實現真機測試,一個個人開發者賬號最多隻能新增100個udid。
6樓:微導流開發者服務平臺
ios應用的簽名方式有兩種:企業簽名,tf簽名。
tf簽名的機制原理解析
這段md5加密演算法是什麼意思,誰能幫我解釋下?不會j**a看不懂。。。求逐行註解下。越通俗越好。謝謝
7樓:劉維毅
@pete_geng,我再補充兩句:
1.hexdigits長度是16需要注意,這也是利用0xf的原因[十六進位制]即[1111]二進位制表示;
2.hexdigits[byte0 >>> 4 & 0xf] ,byte0無符右移4位,取與獲得高四位(<=15),
同理hexdigits[byte0 & 0xf]獲取低四位,這也是char str = new char[j * 2];的原因,
這兩條語句其實是進行加噪音.
any comments are welcome! thanks!
抽屜的意思是什麼,抽屜原理是什麼意思
桌子 櫃復子等傢俱中放東西用的匣 制子,有底,沒蓋,可以抽出來推進去。巴金 家 十七 他鄭重地把它放在寫字檯的抽屜裡,又把抽屜鎖上了。曹禺 雷雨 第四幕 他走到方桌前開啟抽屜,取出長槍,走進後邊書房。抽屜 ch u ti 桌子 櫃子等傢俱中放東西用的匣子,有底,沒蓋,可以抽出來推進去。抽屜附於桌子 ...
編譯原理中V是什麼意思
v是一個符號集合,假設v指的是三個符號a,b,c的集合,記為v v 讀作 v的閉包 它的數學定義是v自身的任意多次自身連線 乘法 運算的積,也是一個集合。也就是說,用v中的任意符號進行任意多次 包括0次 連線,得到的符號串,都是v 這個集合中的元素。0次連線的結果是不含任何符號的空串,記為 1次連線...
5w什麼意思,5w法是什麼意思?
5w表示五萬,拼音簡寫 用於錢 公里數等的表示,5萬元錢 5萬公里 5w表示五瓦特 物理單位 用於電路的功率的表示 5w,ps2的型號 五w要素 一個新聞寫作五要素,who what which who where 五w模式 拉斯維爾程式 分別是英語中五個疑問代詞的第一個字母,即 who 誰 say...