对称加密算法(私钥)
RC4
DES(常用)
数据加密标准,速度较快,适用于加密大量数据的场合
3DES
是基于DES,对一块数据用三个不同的密钥进行三次加密,强度更高。
AES(常用)
高级加密标准,是下一代的加密算法标准,速度快,安全级别高。
AES 算法基于排列和置换运算。排列是对数据重新进行安排,置换是将一个数据单元替换为另一个。AES 使用几种不同的方法来执行排列和置换运算。
AES 是一个迭代的、对称密钥分组的密码,它可以使用128、192 和 256 位密钥,并且用 128 位(16字节)分组加密和解密数据。与公共密钥密码使用密钥对不同,对称密钥密码使用相同的密钥加密和解密数据。通过分组密码返回的加密数据的位数与输入数据相同。迭代加密使用一个循环结构,在该循环中重复置换和替换输入数据。
非对称加密算法(公钥加私钥)
RSA(常用)
由 RSA 公司发明,是一个支持变长密钥的公共密钥算法,需要加密的文件块的长度也是可变的。
DSA
数字签名算法,是一种标准的 DSS(数字签名标准),仅能用于签名,不能用于加解密。
DSS
数字签名标准,既能用于签名,也可以用于加解密。
ECC
椭圆曲线密码编码学。
HASH算法
MD5
SHA1
SHA256
概念
数字摘要
发送消息生成的hash 值
数字签名
经过加密的数字摘要,就是人们所说的”数字签名“!数字签名只能验证数据的完整性,数据本身是否加密不属于数字签名的控制范围。
综上所述,数字签名有两种功效:一是能确定消息确实是由发送方签名并发出来的,因为别人假冒不了发送方的签名。二是数字签名能确定消息的完整性。
数字证书
用户首先产生自己的密钥对,并将公共密钥及部分个人身份信息传送给认证中心。认证中心在核实身份后,将执行一些必要的步骤,以确信请求确实由用户发送而来,然后,认证中心将发给用户一个数字证书,该证书内包含用户的个人信息和他的公钥信息,同时还附有认证中心的签名信息。用户就可以使用自己的数字证书进行相关的各种活动。数字证书由独立的证书发行机构发布。数字证书各不相同,每种证书可提供不同级别的可信度。可以从证书发行机构获得您自己的数字证书。
应用
ssh
ssl
SSL的基本思想是用非对称加密来建立链接(握手阶段),用对称加密来传输数据(传输阶段)。这样既保证了密钥分发的安全,也保证了通信的效率。