数据的价值在于使用,不可避免需要通过网络传输,在传输过程中网络(TCP/IP)是不可信的,因此数据很容易被第三方截获被滥用,如果被恶意使用会造成不可估量的损失,因此,加密技术是必选项。
加密一般遵守业内比较通用的算法,但除了算法外,还有流程管理上的相关性,因此这里加密方法而且不用加密算法来概括。
首先达成一些共识
加密就是用密钥对数据进行数值运算,把数据变成第三者无法理解的形式的过程。
解密就是通过密钥进行数值计算,把密文恢复成原本数据的过程。
未通过加密处理的原始数据,或使用正确方法解密后的数据,可以直接使用,敏感内容的明文尽量避免在网络上传输。
使用特定加密算法,对明文进行加密后的数据,不可以直接辨识或使用,一般可以放心的在网络上传输。
假设A向B传输信息,被其它人看到,使用加密技术来应对。
假设A向B传输信息,B接收到的消息是A以外的用户冒充的,使用消息验证码或数字签名技术来解决。
假设A向B传输信息,B收到的数据由于人为或故障并不是A发出来的原始数据,也可以使用消息验证码或数字签名技术来解决。
假设A向B传输信息,B收到后A否认这个数据是自己发出的,可以使用数字签名来应对。
为了适用不同的加密需求,主要有对称加密、非对称加密、Hash(摘要)算法、混合加密等几种类型。
加密和解密使用相同的密钥我们一般称为对称加密。常见的对称加密算法有:AES、DES、3DES、DESX、Blowfish、IDEA、RC4、RC5、RC6等,其中AES的应用最为广泛。
本地数据加密、https通信、网络传输等
加密和解密使用不同的密钥,一般加密的密钥称为公钥,可以分发给需要发送数据的一端,解密的密钥称为私钥,一般自己保留,绝不外传。拿到公钥相当于有了向持有私钥的一方发送数据的资格。常见的算法有RSA、ECC(移动设备用)、Diffie-Hellman、El Gamal、DSA(数字签名用)等。
https会话前期、CA数字证书、信息加密、登录认证等
Hssh是一种单向算法,即计算出来的密文不可逆,不可以再解密成明文,可以称为加密算法也可以称为一种编码格式。常见的算法有:MD2、MD4、MD5、HAVAL、SHA等。
文件或字符串一致性校验、数字签名、鉴权协议
以上每一种加密算法都有长处,同时也会存在短板,实际的应用中人的创造力随着破坏力提升,把这几种算法相互结合,以达到更高更灵活的目标。
应该说Base64并不能算是一种加密算法,而是一种编码格式,在网络上最常见的用于传输8bid字节代码的编码方式之一。
Base64编码可用于在HTTP环境下传递较长的标识信息,Base编码不仅不仅比较简单,同时也据有不可读性,因此说是加密也算吧,起码可以起到混乱普通用户视听的作用啦。