1,对称加密算法,是指加密和解密使用相同的密钥,典型的算法有RSA,DSA,DH
2,非对称加密算法:又称为公钥加密算法,是指加密和解密使用不同的密钥,公共的公钥用于加密,私钥用于解密,比如第一次请求一个https网站的时候,该网站服务器会发送一个数字证书(里面包含公钥)给浏览器,浏览器自动验证证书是否合法有效,如果是则自动随机生成一个key,通过该证书的公钥加密后发送给服务器,服务器则通过证书的私钥解密获得浏览器发送过来的key,服务器和浏览器之间就通过这个key来进行加密通信,这个key称为对话密钥。当然私钥也可以用来加密,只有对应的公钥才能解密,比如浏览器在验证证书合法有效的时候,通过颁发机构的公钥解密获取机构信息的hash值,颁发机构在申请者颁发数字证书的时候会用申请者的个人信息通过颁发机构的证书私钥用hash算法加密生成一个hash值当做证书的数字签名。
3,散列/哈希算法:是指把数据通过某种公开的算法变成固定长度的hash值,这个过程可以使用密钥也可以不使用,这种加密算法是不可逆的,也就是说不能从加密后的hash值解密还原成明文,因此,这种算法通常用于验证数据是否被篡改和数据是否一致。因为同样的明文加密后得到是相同的hash值。典型的算法有MD5,SHA,Base64等。