1.md5
任意長度字符串生成128bit的大整數(shù),整個過程不可逆,用于生成數(shù)字簽名(如果源文件改變了,簽名文件也會改變)。為了混淆可以在原文中加salt(指定位置插入固定字符串),并且可以多次MD5。
2.BASE64
一套散列的規(guī)則,用于將二進制文件轉(zhuǎn)化為可顯示的字符串,二進制沒6個bit為一個單位映射為64個指定的可以顯示出來的字符,便于傳輸。
3.RSA
不對稱加密算法,公鑰私鑰互相可以加密&解密,原理是數(shù)字乘積容易,但很難被分解還原。當(dāng)外部使用公鑰加密數(shù)據(jù)發(fā)送給我時,我能使用私鑰解密。當(dāng)我對外發(fā)布一段內(nèi)容時,我可以將內(nèi)容hash得到摘要(小的多的部分),和發(fā)布內(nèi)容一起公布,外部收到內(nèi)容后,使用公鑰解密摘要,和原文比對,保證內(nèi)容未被修改過。
4.DES
Data Encryption Standard,是一個對稱的加密算法,加密密鑰和解密的密鑰通常是一把(或者可以互相推導(dǎo)出來),除此之外,加密和解密的算法是相同的一套。一個最重要的特性是64位的密鑰已經(jīng)不安全了,可以被暴力破解,但128位的被認(rèn)為是安全的,但是隨著計算機性能的提升,被破解只是時間問題。
加密算法簡介:將數(shù)據(jù) 64位分塊,然后按照一定規(guī)則移動位置,得到分別為32位的兩部分?jǐn)?shù)據(jù),記作L0,R0。同時將64 - 8(校驗位) = 56位的密鑰換位得到子密鑰K0。然后將L0,R0依據(jù)K0做一個F函數(shù)運算,得到第一次迭代的L1,R1。變化密鑰(記作K1),重復(fù)上述步驟... 將原文做16次映射,之后按照第一次移動規(guī)則的逆規(guī)則移位,就是密文了。解密的過程和加密一樣,只是順序顛倒,先做逆規(guī)則、先使用k15子密鑰。