導航:首頁 > 文檔加密 > 口令加密演算法md5

口令加密演算法md5

發布時間:2024-07-29 19:49:42

① 常見密碼演算法原理

PBKDF2(Password-Based Key Derivation Function)是一個用來導出密鑰的函數,用來生成加密的密碼,增加破解的難度,類似bcrypt/scrypt等,可以用來進行密碼或者口令的加密存儲。主要是鹽值+pwd,經過多輪HMAC演算法的計算,產生的密文。
PBKDF2函數的定義
DK = PBKDF2(PRF, Password, Salt, c, dkLen)
• PRF是一個偽隨機函數,例如HASH_HMAC函數,它會輸出長度為hLen的結果。
• Password是用來生成密鑰的原文密碼。
• Salt是一個加密用的鹽值。
• c是進行重復計算的次數。
• dkLen是期望得到的密鑰的長度。
• DK是最後產生的密鑰。
https://segmentfault.com/a/1190000004261009

下面我們以Alice和Bob為例敘述Diffie-Hellman密鑰交換的原理。
1,Diffie-Hellman交換過程中涉及到的所有參與者定義一個組,在這個組中定義一個大質數p,底數g。
2,Diffie-Hellman密鑰交換是一個兩部分的過程,Alice和Bob都需要一個私有的數字a,b。
下面是DH交換的過程圖:
本圖片來自wiki
下面我們進行一個實例
1.愛麗絲與鮑伯協定使用p=23以及g=5.
2.愛麗絲選擇一個秘密整數a=6, 計算A = g^a mod p並發送給鮑伯。
A = 5^6 mod 23 = 8.
3.鮑伯選擇一個秘密整數b=15, 計算B = g^b mod p並發送給愛麗絲。
B = 5^15 mod 23 = 19.
4.愛麗絲計算s = B a mod p
19^6 mod 23 = 2.
5.鮑伯計算s = A b mod p
8^15 mod 23 = 2.

ECDH:
ECC演算法和DH結合使用,用於密鑰磋商,這個密鑰交換演算法稱為ECDH。交換雙方可以在不共享任何秘密的情況下協商出一個密鑰。ECC是建立在基於橢圓曲線的離散對數問題上的密碼體制,給定橢圓曲線上的一個點P,一個整數k,求解Q=kP很容易;給定一個點P、Q,知道Q=kP,求整數k確是一個難題。ECDH即建立在此數學難題之上。密鑰磋商過程:
假設密鑰交換雙方為Alice、Bob,其有共享曲線參數(橢圓曲線E、階N、基點G)。

來自 http://www.cnblogs.com/fishou/p/4206451.html

https://zh.wikipedia.org/wiki/SHA%E5%AE%B6%E6%97%8F

exponent1 INTEGER, -- d mod (p-1)
exponent2 INTEGER, -- d mod (q-1)
coefficient INTEGER, -- (inverse of q) mod p
otherPrimeInfos OtherPrimeInfos OPTIONAL
}
-----END RSA PRIVATE KEY-----
while a RSA public key contains only the following data:
-----BEGIN RSA PUBLIC KEY-----
RSAPublicKey ::= SEQUENCE {
molus INTEGER, -- n
publicExponent INTEGER -- e
}
-----END RSA PUBLIC KEY-----
and this explains why the private key block is larger.
Note that a more standard format for non-RSA public keys is
-----BEGIN PUBLIC KEY-----
PublicKeyInfo ::= SEQUENCE {
algorithm AlgorithmIdentifier,
PublicKey BIT STRING
}
AlgorithmIdentifier ::= SEQUENCE {
algorithm OBJECT IDENTIFIER,
parameters ANY DEFINED BY algorithm OPTIONAL
}
-----END PUBLIC KEY-----
More info here.
BTW, since you just posted a screenshot of the private key I strongly hope it was just for tests :)

密鑰的長度
C:\herong>java RsaKeyGenerator 128
p: 17902136406704537069
q: 17902136406704537077
m:
Molus:
Key size: 128
Public key:
Private key:
C:\herong>java RsaKeyGenerator 256
p:
q:
m: ...
Molus: ...
Key size: 256
Public key: ...
Private key: ...

https://security.stackexchange.com/questions/90169/rsa-public-key-and-private-key-lengths
https://stackoverflow.com/questions/2921508/trying-to-understand-java-rsa-key-size >

http://www.herongyang.com/Cryptography/RSA-BigInteger-Keys-Generated-by-RsaKeyGenerator-java.html

update() adds data to the Cipher』s internal buffer, then returns all currently completely encoded blocks. If there are any encoded blocks left over, they remain in the Cipher』s buffer until the next call, or a call to doFinal(). This means that if you call update() with a four byte array to encrypt, and the buffer size is eight bytes, you will not receive encoded data on the return (you』ll get a null instead). If your next call to update() passes five bytes of data in, you will get an 8 byte (the block size) array back, containing the four bytes passed in on the previous call, the first four bytes from the current call – the remaining byte from the current call is left in the Cipher』s buffer.
doFinal() on the other hand is much simpler: it encrypts the passed data, pads it out to the necessary length, and then returns it. The Cipher is essentially stateless.

來自 https://segmentfault.com/a/1190000006931511

DH演算法的中間人攻擊
在最初的描述中,迪菲-赫爾曼密鑰交換本身並沒有提供通訊雙方的身份驗證服務,因此它很容易受到中間人攻擊。 一個中間人在信道的中央進行兩次迪菲-赫爾曼密鑰交換,一次和Alice另一次和Bob,就能夠成功的向Alice假裝自己是Bob,反之亦然。而攻擊者可以解密(讀取和存儲)任何一個人的信息並重新加密信息,然後傳遞給另一個人。因此通常都需要一個能夠驗證通訊雙方身份的機制來防止這類攻擊。

優缺點:
1、 僅當需要時才生成密鑰,減小了將密鑰存儲很長一段時間而致使遭受攻擊的機會。
2、 除對全局參數的約定外,密鑰交換不需要事先存在的基礎結構。
然而,該技術也存在許多不足:
1、 沒有提供雙方身份的任何信息。
2、 它是計算密集性的,因此容易遭受阻塞性攻擊,即對手請求大量的密鑰。受攻擊者花費了相對多的計算資源來求解無用的冪系數而不是在做真正的工作。
3、 沒辦法防止重演攻擊。
4、 容易遭受中間人的攻擊。第三方C在和A通信時扮演B;和B通信時扮演A。A和B都與C協商了一個密鑰,然後C就可以監聽和傳遞通信量。中間人的攻擊按如下進行:
(1) B在給A的報文中發送他的公開密鑰。
(2) C截獲並解析該報文。C將B的公開密鑰保存下來並給A發送報文,該報文具有B的用戶ID但使用C的公開密鑰YC,仍按照好像是來自B的樣子被發送出去。A收到C的報文後,將YC和B的用戶ID存儲在一塊。類似地,C使用YC向B發送好像來自A的報文。
(3) B基於私有密鑰XB和YC計算秘密密鑰K1。A基於私有密鑰XA和YC計算秘密密鑰K2。C使用私有密鑰XC和YB計算K1,並使用XC和YA計算K2。
(4) 從現在開始,C就可以轉發A發給B的報文或轉發B發給A的報文,在途中根據需要修改它們的密文。使得A和B都不知道他們在和C共享通信。

② 浠涔堟槸md5鍔犲瘑

浠庝簨緗戠粶瀹夊叏榪欎竴琛屼笟鐨勪漢閮界煡閬擄紝鎴戜滑鍋氭笚閫忔祴璇曟椂緇忓父浼氶亣鍒伴渶瑕佽В瀵嗙殑Md5瀵嗘枃銆備負浜嗚兘澶熸彁鍗囨晥鐜囷紝鎴戜滑鍙浠ュ湪緗戜笂鎵句竴浜涜兘澶熷湪綰縨d5瑙e瘑鐨勭綉絝欍備笅闈㈢粰澶у跺垎浜鍥藉唴甯哥敤鐨勫嚑涓鍏嶈垂MD5鍦ㄧ嚎瑙e瘑緗戠珯銆

涓銆丮D5鍦ㄧ嚎鍔犲瘑瑙e瘑

閽堝筸d5絳夊叏鐞冮氱敤鍏寮鐨勫姞瀵嗙畻娉曡繘琛屽弽鍚戞煡璇錛屽緩絝嬩簡瀵嗘枃瀵瑰簲鏌ヨ㈡暟鎹搴擄紝MD5鍔犲瘑瑙e瘑騫沖彴鍙鏌ヨ㈠緢澶氬嶆潅瀵嗘枃錛屾敮鎸佸氱嶇畻娉曪紝瀹炴椂鏌ヨ㈣板綍瓚呰繃24涓囦嚎鏉★紝鍏卞崰鐢160T紜鐩橈紝鎴愬姛鐜95%浠ヤ笂銆傝繖涓緗戠珯鍥藉唴寰堝氫漢鍦ㄤ嬌鐢錛屽洜涓哄畠鏄鍏嶈垂鐨勩傚傛灉鍦╩d5涓婅В瀵嗕笉浜嗙殑瀵嗘枃鍦ㄥ叾浠栬В瀹㈢綉絝欎篃鍩烘湰娌℃垙浜嗐

③ MD5鏄浠涔堝姞瀵嗙畻娉曪紵

MD5鍔犲瘑鏄涓縐嶅父鐢ㄧ殑鍔犲瘑鏂瑰紡錛屽畠鍙浠ュ皢浠繪剰闀垮害鐨勬暟鎹杞鎹涓哄滻瀹氶暱搴︾殑128浣嶅搱甯屽礆紙鍗32浣峂D5鍊礆級錛屽苟涓斿叿鏈変笉鍙閫嗘с佸敮涓鎬с佷笉鍙綃℃敼鎬х瓑鐗圭偣銆傚湪緗戠粶浼犺緭涓錛屽父鐢∕D5鍔犲瘑鏉ヤ繚璇佹暟鎹鐨勫畨鍏ㄦс

MD5鍦ㄧ嚎瑙e瘑鍘熺悊

MD5鍦ㄧ嚎瑙e瘑鏄鎸囬氳繃鐗瑰畾鐨勭畻娉曟潵鐮磋ВMD5鍔犲瘑鐨勫瘑鐮併傜敱浜嶮D5鍔犲瘑鐨勪笉鍙閫嗘э紝鍥犳MD5鍦ㄧ嚎瑙e瘑騫朵笉鏄閫氳繃鐩存帴瑙e瘑鏉ュ疄鐜扮殑錛岃屾槸閫氳繃絀蜂婦娉曘佸瓧鍏告敾鍑葷瓑鏂瑰紡鏉ョ牬瑙e瘑鐮併

MD5鍦ㄧ嚎瑙e瘑姝ラ

涓嬮潰浠嬬粛涓涓婱D5鍦ㄧ嚎瑙e瘑鐨勫叿浣撴ラわ細

1.鎵撳紑MD5鍦ㄧ嚎瑙e瘑緗戠珯錛屼緥濡俶d5decrypt.net銆

2.灝嗛渶瑕佽В瀵嗙殑32浣峂D5鍊煎嶅埗鍒扮綉絝欑殑杈撳叆妗嗕腑銆

3.閫夋嫨瑙e瘑鏂瑰紡錛屼緥濡傚瓧鍏告敾鍑匯佹毚鍔涚牬瑙g瓑銆

4.鐐瑰嚮鈥滆В瀵嗏濇寜閽錛岀瓑寰呰В瀵嗙粨鏋溿

5.濡傛灉瑙e瘑鎴愬姛錛岀綉絝欎細榪斿洖瑙e瘑鍚庣殑鏄庢枃瀵嗙爜銆

MD5鍦ㄧ嚎瑙e瘑宸ュ叿鎺ㄨ崘

涓嬮潰鎺ㄨ崘鍑犳懼父鐢ㄧ殑MD5鍦ㄧ嚎瑙e瘑宸ュ叿錛

1.md5decrypt.net錛氳繖鏄涓嬈懼厤璐圭殑鍦ㄧ嚎MD5瑙e瘑宸ュ叿錛屾敮鎸佸氱嶈В瀵嗘柟寮忋

2.md5online.org錛氳繖鏄涓嬈劇畝鍗曟槗鐢ㄧ殑MD5鍦ㄧ嚎瑙e瘑宸ュ叿錛屾敮鎸佸氱嶈В瀵嗘柟寮忋

3.cmd5.org錛氳繖鏄涓嬈句笓涓氱殑MD5鍦ㄧ嚎瑙e瘑宸ュ叿錛屾敮鎸佸氱嶈В瀵嗘柟寮忓拰澶氱嶈璦銆

MD5鍦ㄧ嚎瑙e瘑鐨勬敞鎰忎簨欏

鍦ㄨ繘琛孧D5鍦ㄧ嚎瑙e瘑鏃訛紝闇瑕佹敞鎰忎互涓嬪嚑鐐癸細

1.瑙e瘑榪囩▼闇瑕佷竴瀹氱殑鏃墮棿錛岄渶瑕佽愬績絳夊緟瑙e瘑緇撴灉銆

2.瑙e瘑鎴愬姛騫朵笉鎰忓懗鐫瀵嗙爜涓瀹氭g『錛岄渶瑕佹牴鎹瀹為檯鎯呭喌榪涜岄獙璇併

3.鍦ㄤ嬌鐢∕D5鍦ㄧ嚎瑙e瘑宸ュ叿鏃訛紝闇瑕佹敞鎰忎繚鎶や釜浜轟俊鎮鍜屾暟鎹瀹夊叏錛岄夋嫨鍙淇$殑緗戠珯榪涜屾搷浣溿

④ 鍔犲瘑鎶鏈04-鍝堝笇綆楁硶-MD5鍘熺悊

MD5娑堟伅鎽樿佺畻娉曪紙鑻辮錛歁D5 Message-Digest Algorithm錛夛紝涓縐嶈騫挎硾浣跨敤鐨勫瘑鐮佹暎鍒楀嚱鏁幫紝鍙浠ヤ駭鐢熷嚭涓涓 128 浣嶏紙 16 瀛楄妭錛岃琛ㄧず涓 32 浣嶅嶮鍏榪涘埗鏁板瓧錛夌殑鏁e垪鍊礆紙hash value錛夛紝鐢ㄤ簬紜淇濅俊鎮浼犺緭瀹屾暣涓鑷淬侻D5 鐢辯編鍥藉瘑鐮佸﹀剁綏綰沖痙路鏉庣淮鏂鐗癸紙Ronald Linn Rivest錛夎捐★紝浜 1992 騫村叕寮錛岀敤浠ュ彇浠 MD4 綆楁硶銆傝繖濂楃畻娉曠殑紼嬪簭鍦 RFC 1321 涓琚鍔犱互瑙勮寖銆

灝嗘暟鎹錛堝備竴孌墊枃瀛楋級榪愮畻鍙樹負鍙︿竴鍥哄畾闀垮害鍊礆紝鏄鏁e垪綆楁硶鐨勫熀紜鍘熺悊銆

娉ㄦ剰錛歁D5 瀵規秷鎮鐨勯暱搴︽病鏈夎佹眰銆

瀛楄妭鐨勬帓鍒楁柟寮忔湁涓や釜閫氱敤瑙勫垯

姣斿傦細瀛樺偍 16 榪涘埗鍊 0x12345678錛岄渶瑕佷嬌鐢 4 涓瀛楄妭錛屽瓨鍌ㄥ瓧鑺傚湪鍐呭瓨鍦板潃澧為暱鏂瑰悜鍒嗗埆鏄

澶х搴忔柟寮忓瓨鍌錛0x12 0x34 0x56 0x78

灝忕搴忔柟寮忓瓨鍌錛0x78 0x56 0x34 0x12

1996 騫村悗琚璇佸疄瀛樺湪寮辯偣錛屽彲浠ヨ鍔犱互鐮磋В錛屽逛簬闇瑕侀珮搴﹀畨鍏ㄦх殑璧勬枡錛屼笓瀹朵竴鑸寤鴻鏀圭敤鍏朵粬綆楁硶錛屽 SHA-2銆2004 騫達紝璇佸疄 MD5 綆楁硶鏃犳硶闃叉㈢版挒鏀誨嚮錛屽洜姝や笉閫傜敤浜庡畨鍏ㄦцよ瘉錛屽 SSL 鍏寮瀵嗛掗璁よ瘉鎴栨槸鏁板瓧絳懼悕絳夌敤閫斻

2009 騫達紝涓鍥界戝﹂櫌鐨勮阿娑涘拰鍐鐧誨浗浠呯敤浜 2 20.96 鐨勭版挒綆楁硶澶嶆潅搴︼紝鐮磋В浜 MD5 鐨勭版挒鎶墊姉錛岃ユ敾鍑誨湪鏅閫氳$畻鏈轟笂榪愯屽彧闇瑕佹暟縐掗挓銆2011 騫達紝RFC 6151 紱佹 MD5 鐢ㄤ綔瀵嗛掗鏁e垪娑堟伅璁よ瘉鐮併

MD5 鍝堝笇鍚庣殑浣嶆暟涓鑸涓轟袱縐嶏紝16 浣嶄笌 32 浣嶃16 浣嶅疄闄呬笂鏄浠 32 浣嶅瓧絎︿覆涓錛屽彇涓闂寸殑絎 9 浣嶅埌絎 24 浣嶇殑閮ㄥ垎銆

MD5 32 ("123123") = ""

MD5 16 ("123123") = "13955235245B2497"

⑤ md5鏄浠涔

MD5鏄淇℃伅鎽樿佺畻娉曪紙鑻辮錛歁D5Message-DigestAlgorithm錛夈

MD5鐢辯編鍥藉瘑鐮佸﹀剁綏綰沖痙路鏉庣淮鏂鐗癸紙RonaldLinnRivest錛夎捐★紝浜1992騫村叕寮錛岀敤浠ュ彇浠MD4綆楁硶銆傝繖濂楃畻娉曠殑紼嬪簭鍦≧FC1321鏍囧噯涓琚鍔犱互瑙勮寖銆備竴縐嶈騫挎硾浣跨敤鐨勫瘑鐮佹暎鍒楀嚱鏁幫紝鍙浠ヤ駭鐢熷嚭涓涓128浣嶏紙16瀛楄妭錛夌殑鏁e垪錛坔ashvalue錛夛紝鐢ㄤ簬紜淇濅俊鎮浼犺緭瀹屾暣涓鑷淬

1996騫村悗璇ョ畻娉曡璇佸疄瀛樺湪寮辯偣錛屽彲浠ヨ鍔犱互鐮磋В錛屽逛簬闇瑕侀珮搴﹀畨鍏ㄦх殑鏁版嵁錛屼笓瀹朵竴鑸寤鴻鏀圭敤鍏朵粬綆楁硶錛屽係HA-2銆2004騫達紝璇佸疄MD5綆楁硶鏃犳硶闃叉㈢版挒錛坈ollision錛夛紝鍥犳や笉閫傜敤浜庡畨鍏ㄦцよ瘉錛屽係SL鍏寮瀵嗛掗璁よ瘉鎴栨槸鏁板瓧絳懼悕絳夌敤閫斻

鐩稿叧淇℃伅錛

1991騫達紝Rivest寮鍙戝嚭鎶鏈涓婃洿涓鴻秼榪戞垚鐔熺殑 md5綆楁硶銆傚畠鍦∕D4鐨勫熀紜涓婂炲姞浜"瀹夊叏-甯﹀瓙"錛坰afety-belts錛夌殑姒傚康銆傝櫧鐒禡D5姣擬D4澶嶆潅搴﹀ぇ涓浜涳紝浣嗗嵈鏇翠負瀹夊叏銆傝繖涓綆楁硶寰堟槑鏄劇殑鐢卞洓涓鍜孧D4璁捐℃湁灝戣鎬笉鍚岀殑姝ラょ粍鎴愩

鍦 MD5綆楁硶涓錛屼俊鎮鎽樿佺殑澶у皬鍜屽~鍏呯殑蹇呰佹潯浠朵笌MD4瀹屽叏鐩稿悓銆侱en boer鍜孊osselaers鏇懼彂鐜癕D5綆楁硶涓鐨勫亣鍐茬獊錛坧seudo-collisions錛夛紝浣嗛櫎姝や箣澶栧氨娌℃湁鍏朵粬琚鍙戠幇鐨勫姞瀵嗗悗緇撴灉浜嗐

⑥ md5指的是什麼

MD5即Message-Digest Algorithm5信息摘要演算法5,是計算機廣泛使用的散列演算法之一又譯摘要演算法,哈希演算法。經MD2,MD3和MD4發展而來,誕生於20世紀90年代初。用於確保信息傳輸完整一致。雖然已被破解,但仍然具有較好的安全性,加之可以免費使用,所以仍廣泛運用於數字簽名,文件完整性驗證以及口令加密等領域。

md5的研究

2004年8月17日的美國加州聖巴巴拉的國際密碼學會議上,來自中國山東大學的王小雲教授做了破譯MD5。HAVAL-128,MD4和RIPEMD演算法的報告,公布了MD系列演算法的破解結果。宣告了世界通行密碼標准MD5不再安全。2008年,荷蘭埃因霍芬技術大學科學家成功把2個可執行文件進行了MD5碰撞,使得這兩個運行結果不同的程序被計算出同一個MD。

閱讀全文

與口令加密演算法md5相關的資料

熱點內容
安卓系統源碼如何混淆 瀏覽:289
題庫演算法 瀏覽:476
臨沂壓縮機生產廠家 瀏覽:942
cad旋轉角度命令 瀏覽:389
阿里雲是用什麼牌子伺服器 瀏覽:670
java基礎入門百度雲 瀏覽:979
360壓縮咋加密 瀏覽:354
hadoopmapreduce編程 瀏覽:302
linuxraid軟體 瀏覽:589
北美gre範文pdf 瀏覽:264
硬碟錄像機接什麼伺服器設備 瀏覽:502
智慧醫療方面最優演算法 瀏覽:920
伺服器ban掉了是什麼意思 瀏覽:394
vvo手機拍的視頻在哪個文件夾 瀏覽:838
華為防火牆cli命令手冊 瀏覽:895
於正新劇玉樓春在什麼App播放 瀏覽:127
學習社會經驗下載什麼app 瀏覽:475
php發布站程序 瀏覽:204
源碼編譯ntfs內核模塊 瀏覽:120
r11s手機管家沒有加密 瀏覽:781