现代密码学最重要的原则:柯克霍夫原则,即数据的安全基于密钥而不是算法的保密。

1.BASE64
网络上最常见的用于传输8位字节代码的编码方式之一,可在HTTP环境下传递较长的标识信息。一般用于URL的处理,或者说任何你不想让普通人一眼就知道是啥的东西均可以使用Base64编码处理后在发布在网络上。

特点:具有不可读性,即所编码的数据不会被直接看到

2.MD5
即Message-Digest Algorithm5(信息-摘要算法5),用于确保信息传输完整一致

信息摘要:通过一个算法是固定数据产生一个特定的信息摘要

将数据运算为另一固定长度值,由一个单向Hash加密函数对消息进行作用而产生。HASH函数的抗冲突性使得如果一段明文稍有变化,即使只更改该段落的一个字母,通过哈希算法作用后都将产生不同的值。HASH算法的单向性使得要找到哈希值相同的两个不同的输入消息,在计算上是不可能的,因此数据的哈希值,即消息摘要可以检验数据的完整性。广泛用于加密和解密技术

3.SHA
即Secure Hash Algorithm(安全哈希算法),主要用于数字签名标准里面定义的数字签名算法。

算法思想:接受一段明文呢,然后以一种不可逆的方式将其转换为一段密文,也可简单的理解为去一串输入码将其转化为长度较短、位数固定的输出序列即散列值的过程

4.HMAC
即Hash Message Authentication Code(散列消息鉴别码),基于密钥的Hash算法的认证协议。

算法原理:用公开函数和密钥产生一个固定长度的值作为认证标识,用这个标识鉴别消息的完整性。使用一个密钥生成一个固定大小的小数据块,即MAC,并将其加入到消息中,然后传输。

5.对称加密
采用单钥密码系统加密方法,同一个密钥可以同时用作信息的加密和解密。

特点:计算量小、加密速度快、加密效率高

6.非对称加密
采用两个密钥来进行加密和解密,分别是公钥和私钥。若使用公钥对数据进行加密,则只有使用对应的私钥才能解密,反之亦然。