一:MD5
MD5本質(zhì)是一種散列函數(shù),用以提供消息的完整性保護(hù)。
特點(diǎn):
1.壓縮性:任意長(zhǎng)度的數(shù)據(jù),算出的MD5值長(zhǎng)度都是固定的;
2.容易計(jì)算:從原數(shù)據(jù)計(jì)算出MD5值很容易;
3.抗修改性:對(duì)原數(shù)據(jù)進(jìn)行任何改動(dòng),哪怕只修改1個(gè)字節(jié),所得到的MD5值都有很大的區(qū)別;
4.強(qiáng)抗碰撞:已知原數(shù)據(jù)和其MD5值,想找到一個(gè)具有相同MD5值的數(shù)據(jù)(及偽造數(shù)據(jù))是非常困難的;
5.不可逆:MD5理論上是不可逆的(但是現(xiàn)在已經(jīng)可以暴力破解了)。
使用場(chǎng)景:
1.驗(yàn)證密碼:只要算法不變,就能和服務(wù)器上的MD5匹配;
2.文件完整性的校驗(yàn):當(dāng)下載一個(gè)文件時(shí),服務(wù)器返回的信息包括這個(gè)文件的md5,在本地下載完畢時(shí)進(jìn)行md5加密,將兩個(gè)md5值進(jìn)行比較,如果一致則說明文件完整沒有丟包現(xiàn)象。
工具類代碼:



二:RSA
RSA加密算法是一種非對(duì)稱加密算法,非對(duì)稱加密算法需要兩個(gè)密鑰:公共密鑰和私有密鑰。公鑰和私鑰是配對(duì)的,用公鑰加密的數(shù)據(jù)只有配對(duì)的私鑰才能解密。
RSA對(duì)加密數(shù)據(jù)的長(zhǎng)度有限制,一般為密鑰的長(zhǎng)度值-11,要加密較長(zhǎng)的數(shù)據(jù),可以采用數(shù)據(jù)截取的方法,分段加密。
使用場(chǎng)景:
文件或數(shù)據(jù)在本地使用公鑰或私鑰加密,加密后的數(shù)據(jù)傳送到服務(wù)器,服務(wù)器使用同一套密鑰中的私鑰或者公鑰進(jìn)行解密。



三:AES
AES加密是一種高級(jí)加密標(biāo)準(zhǔn),是一種區(qū)塊加密標(biāo)準(zhǔn)。它是一個(gè)對(duì)稱密碼,就是說加密和解密用相同的密鑰。WPA/WPA2經(jīng)常用的加密方式就是AES加密算法。
示意圖:

工具類代碼:





轉(zhuǎn)載:https://blog.csdn.net/u011897782/article/details/81163387