當前位置:成語大全網 - 書法字典 - 從網上下載遊戲經常用到的winmd5軟件是什麽功能?

從網上下載遊戲經常用到的winmd5軟件是什麽功能?

WinMD5 MD5簡介

MD5的全稱是Message-Digest Algorithm 5,由麻省理工學院計算機科學實驗室和RSA數據安全公司在90年代初發明,由MD2、MD3和MD4發展而來。

消息摘要(Message-Digest)壹般指消息的哈希變換,即把任意長度的字節串變換成壹定長度的大整數。請註意,我使用了“字節串”這個詞,而不是“字符串”,因為這種轉換只與字節的值有關,與字符集或編碼方法無關。

MD5將任意長度的“字節串”轉換成128bit的大整數,是壹種不可逆的字符串轉換算法。換句話說,即使妳看到了源程序和算法的描述,妳也無法將壹個MD5值轉換回原來的字符串。從數學上講,是因為有無限個原串,有點像沒有反函數的數學函數。

MD5的典型應用是為消息(字節串)生成指紋,以防止其被篡改。例如,如果您在壹個名為readme.txt的文件中寫了壹段話,並為這個readme.txt生成壹個MD5值並記錄下來,那麽您就可以將這個文件傳播給他人。如果其他人修改了文件中的任何內容,當您重新計算該文件的MD5時,您會發現它。如果有第三方認證機構,MD5還可以防止文檔作者的“否認”,也就是所謂的數字簽名應用。

MD5也廣泛應用於加密和解密技術。在很多操作系統中,用戶的密碼是以MD5值的形式保存的(或者類似的其他算法)。當用戶登錄時,系統將用戶輸入的密碼計算為MD5值,然後與系統中保存的MD5值進行比較,但系統並不“知道”用戶的密碼是什麽。

壹些黑客破解這個密碼的方式是壹種叫做“運行字典”的方法。字典的獲取方式有兩種,壹種是日常收集的用作密碼的字符串表,另壹種是通過排列組合的方法生成的。首先用MD5程序計算這些字典項的MD5值,然後在這個字典中查找目標的MD5值。

即使密碼的最大長度是8,並且密碼只能是字母和數字,***26+26+10=62個字符,字典中的條目數也是p (62,1)+p (62,2)...+p (62,8),那麽

在許多電子商務和社區應用中,管理用戶帳戶是最常用的基本功能之壹。盡管許多應用服務器提供了這些基本組件,但許多應用程序開發人員更喜歡使用關系數據庫來管理用戶,以獲得更大的管理靈活性。懶惰的方法是,用戶的密碼通常在經過純文本或簡單轉換後直接存儲在數據庫中。所以這些用戶的密碼對於軟件開發者或者系統管理員來說,可以說已經不是什麽秘密了。本文的目的是介紹Java Bean的MD5的實現,同時給出壹個用MD5處理用戶帳號密碼的例子。這種方法使得管理員和程序員無法看到用戶的密碼,盡管他們可以初始化密碼。但是保護用戶的密碼設置習慣很重要。

感興趣的讀者可以得到MD5的文本,即RFC 1321。

http://www.ietf.org/rfc/rfc1321.txt

// -

MD5算法描述

首先,填補職位空缺

第二,補充數據的長度

第三,初始化MD5參數

四、加工位操作功能

五、主要轉化過程

六、輸出結果

補充:

MD5算法首先對輸入數據進行補碼,這樣數據位長度LEN補碼到512的結果就是448。即數據擴展到K*512+448位。即K*64+56字節,K為整數。

具體填充操作:先填壹個1,再填0,直到滿足上述要求。

補充數據長度:

用壹個64位的數來表示數據的原始長度b,用兩個32位的數來表示b,此時數據被填充到長度為512位的倍數。

初始化MD5參數:

四個32位整數(A、B、C、D)用於計算消息摘要,十六進制數用於初始化。

A=0X01234567

B=0X89abcdef

C=0Xfedcba98

D=0X76543210

處理位操作功能:

x、y和z是32位整數。

F(X,Y,Z)= X & amp;y | NOT(X)amp;Z

G(X,Y,Z)= X & amp;Z|Y?(Z)

H(X,Y,Z) = X xor Y xor Z

I(X,Y,Z) = Y xor (X|not(Z))

主要轉化過程:

常量數組T[1...64]使用,其中T[i]是用十六進制16表示的32位整數,數據用16 32位整數數組M[]表示。

具體流程如下:

/*處理原始數據*/

對於i = 0到N/16-1 do

/*每次都將原始數據存放在16個元素的數組X中。*/

對於j = 0到15做

設置X[j]為M[i*16+j]。

結束j的循環。

/*將A另存為AA,B另存為BB,C另存為CC,D另存為d D。*/

AA = A

BB = B

CC = C

DD = D

/* Round 1 */

/*下面的運算A = B+((a+f (b,c,d)+x [k]+t [i])用[abcd k s i]表示

/*做以下16操作。*/

[ABCD 0 7 1][DABC 1 12 2][CDAB 2 17 3][BCDA 322 4]

[ABCD 4 7 5][DABC 5 12 6][CDAB 6 17 7][BCDA 722 8]

[ABCD 8 7 9][DABC 9 12 10][CDAB 10 17 11][bcda 111 22 12]

[ABCD 12 7 13][DABC 13 12 14][CDAB 14 17 15][BCDA 15 22 16]

/*第二輪* */

/*下面的運算A = B+((A+G (B,C,D)+X [K]+T [I])用[abcd k s i]表示

/*做以下16操作。*/

[ABCD 1 5 17][DABC 6 9 18][CDAB 11 14 19][bcda 0 20 20]

[DABC 10 9 22][CDAB 15 14 23][BCDA 4 20 24]

[DABC 14 9 26][CDAB 314 27][巴塞爾公約8 20 28]

[DABC 2 9 30][CDAB 7 14 31][巴塞爾公約12 20 32]

/*第三輪*/

/*下面的運算A = B+((A+H (B,C,D)+X [K]+T [I])用[abcd k s i]表示

/*做以下16操作。*/

[ABCD 5 4 33][DABC 8 11 34][CDAB 11 16 35][BCDA 14 23 36]

[ABCD 1 4 37][DABC 4 11 38][CDAB 7 16 39][bcda 10 23 40]

[ABCD 13 4 41][DABC 0 11 42][CDAB 3 16 43][BCDA 6 23 44]

[ABCD 9 4 45][DABC 12 11 46][CDAB 15 16 47][BCDA 2 23 48]

/*第4輪*/

/*下面的運算A = B+((A+I (B,C,D)+X [K]+T [I])用[abcd k s i]表示

/*做以下16操作。*/

[ABCD 0 6 49][DABC 7 10 50][CDAB 14 15 51][BCDA 5 21 52]

[ABCD 12 6 53][DABC 3 10 54][CDAB 10 15 55][BCDA 1 21 56]

[ABCD 8 6 57][DABC 15 10 58][CDAB 6 15 59][BCDA 13 21 60]

[ABCD 4 6 61][DABC 11 10 62][CDAB 2 15 63][BCDA 9 21 64]

/*然後執行以下操作*/

A = A + AA

B = B + BB

C = C + CC

D = D + DD

End /*結束I */的循環

輸出結果。

(本文中文翻譯自《新世紀》余飛宇。特此聲明,謝謝!)