1.md5
任意长度字符串生成128bit的大整数,整个过程不可逆,用于生成数字签名(如果源文件改变了,签名文件也会改变)。为了混淆可以在原文中加salt(指定位置插入固定字符串),并且可以多次MD5。
2.BASE64
一套散列的规则,用于将二进制文件转化为可显示的字符串,二进制没6个bit为一个单位映射为64个指定的可以显示出来的字符,便于传输。
3.RSA
不对称加密算法,公钥私钥互相可以加密&解密,原理是数字乘积容易,但很难被分解还原。当外部使用公钥加密数据发送给我时,我能使用私钥解密。当我对外发布一段内容时,我可以将内容hash得到摘要(小的多的部分),和发布内容一起公布,外部收到内容后,使用公钥解密摘要,和原文比对,保证内容未被修改过。
4.DES
Data Encryption Standard,是一个对称的加密算法,加密密钥和解密的密钥通常是一把(或者可以互相推导出来),除此之外,加密和解密的算法是相同的一套。一个最重要的特性是64位的密钥已经不安全了,可以被暴力破解,但128位的被认为是安全的,但是随着计算机性能的提升,被破解只是时间问题。
加密算法简介:将数据 64位分块,然后按照一定规则移动位置,得到分别为32位的两部分数据,记作L0,R0。同时将64 - 8(校验位) = 56位的密钥换位得到子密钥K0。然后将L0,R0依据K0做一个F函数运算,得到第一次迭代的L1,R1。变化密钥(记作K1),重复上述步骤... 将原文做16次映射,之后按照第一次移动规则的逆规则移位,就是密文了。解密的过程和加密一样,只是顺序颠倒,先做逆规则、先使用k15子密钥。