好像好久沒有分享點(diǎn)干貨了戚丸,今天工作沒那么忙了划址,就趕緊分享點(diǎn),有用的朋友可以get一下限府,大神多多提建議夺颤,畢竟菜鳥一枚。
一胁勺、MD5加密(后面會分享)
二世澜、HMAC加密
此加密方法需要先生成密鑰,然后再對密碼進(jìn)行MD5和HMAC加密署穗,數(shù)據(jù)庫中需要存放當(dāng)時使用的密鑰和密碼加密后的密文寥裂,在用戶登陸時,再次對填入的密碼用密鑰進(jìn)行加密 并且還要加上當(dāng)前時間(精確到分鐘)案疲。再次HMAC加密封恰,服務(wù)器里也會拿出以前存放的密文加上時間再次加密。所以就算黑客在中途截取了密碼的密文褐啡。也在能在1分鐘只能破譯才能有效诺舔,大大加強(qiáng)了安全性。服務(wù)器為了考慮到網(wǎng)絡(luò)的延遲一般會多算一種答案备畦,如23分過來的密碼低飒,他會把23分和22分的都算一下和用戶匹配只要對上一個就允許登陸。如圖萍恕,用戶注冊與用戶登錄
三、base64加密(后面有時間會再分享關(guān)于base64)
四车要、對稱加密算法
優(yōu)點(diǎn):算法公開允粤、計算量小、加密速度快翼岁、加密效率高类垫、可逆
缺點(diǎn):雙方使用相同鑰匙,安全性得不到保證
現(xiàn)狀:對稱加密的速度比公鑰加密快很多琅坡,在很多場合都需要對稱加密悉患,
相較于DES和3DES算法而言,AES算法有著更高的速度和資源使用效率榆俺,安全級別也較之更高了售躁,被稱為下一代加密標(biāo)準(zhǔn)
nECB :電子代碼本坞淮,就是說每個塊都是獨(dú)立加密的
nCBC :密碼塊鏈,使用一個密鑰和一個初始化向量 (IV)對數(shù)據(jù)執(zhí)行加密轉(zhuǎn)換
ECB和CBC區(qū)別:CBC更加復(fù)雜更加安全陪捷,里面加入了8位的向量(8個0的話結(jié)果等于ECB)回窘。在明文里面改一個字母,ECB密文對應(yīng)的那一行會改變市袖,CBC密文從那一行往后都會改變啡直。
ECB終端命令:
$ openssl enc -des-ecb -K 616263 -nosalt -in msg1.txt -out msg1.bin
CBC終端命令:
$ openssl enc -des-cbc -K 616263 -iv 0000000000000000 -nosalt -in msg1.txt -out msg2.bin
五、RSA加密
RSA非對稱加密算法
非對稱加密算法需要兩個密鑰:公開密鑰(publickey)和私有密鑰(privatekey)公開密鑰與私有密鑰是一對苍碟,如果用公開密鑰對數(shù)據(jù)進(jìn)行加密酒觅,只有用對應(yīng)的私有密鑰才能解密;如果用私有密鑰對數(shù)據(jù)進(jìn)行加密微峰,那么只有用對應(yīng)的公開密鑰才能解密
特點(diǎn):非對稱密碼體制的特點(diǎn):算法強(qiáng)度復(fù)雜舷丹、安全性依賴于算法與密鑰但是由于其算法復(fù)雜,而使得加密解密速度沒有對稱加密解密的速度快县忌。對稱密碼體制中只有一種密鑰掂榔,并且是非公開的,如果要解密就得讓對方知道密鑰症杏。所以保證其安全性就是保證密鑰的安全装获,而非對稱密鑰體制有兩種密鑰,其中一個是公開的厉颤,這樣就可以不需要像對稱密碼那樣傳輸對方的密鑰了
基本加密原理:
(1)找出兩個“很大”的質(zhì)數(shù):P & Q
(2)N = P * Q
(3)M = (P – 1) * (Q – 1)
(4)找出整數(shù)E穴豫,E與M互質(zhì),即除了1之外逼友,沒有其他公約數(shù)
(5)找出整數(shù)D精肃,使得E*D除以M余1,即(E * D) % M = 1
經(jīng)過上述準(zhǔn)備工作之后帜乞,可以得到:
E是公鑰司抱,負(fù)責(zé)加密
D是私鑰,負(fù)責(zé)解密
N負(fù)責(zé)公鑰和私鑰之間的聯(lián)系
加密算法黎烈,假定對X進(jìn)行加密
(X ^ E) % N = Y
n根據(jù)費(fèi)爾馬小定義习柠,根據(jù)以下公式可以完成解密操作
(Y ^ D) % N = X
但是RSA加密算法效率較差,對大型數(shù)據(jù)加密時間很長照棋,一般用于小數(shù)據(jù)资溃。
常用場景:分部要給總部發(fā)一段報文,先對報文整個進(jìn)行MD5得到一個報文摘要烈炭,再對這個報文摘要用公鑰加密溶锭。然后把報文和這個RSA密文一起發(fā)過去》叮總部接收到報文之后要先確定報文是否在中途被人篡改趴捅,就先把這個密文用私鑰解密得到報文摘要垫毙,再和整個報文MD5一下得到的報文摘要進(jìn)行對比,如果一樣就是沒被改過驻售。
為什么我寫的時候板式總是弄不好露久,行間距總是這么大,誰能告訴我一下么欺栗,