对称密码/公共密钥密码是指加密和解密使用同一密钥的方式。
公钥密码/非对称密码是指加密和解密时使用不同密钥的方式。
密钥加密密钥是指加密密钥的密钥。
对称加密的新标准(AES)推荐使用Rijndael
RSA是公钥密码的事实标准(非对称加密)
AES是对称加密标准,Rijndael是该标准采纳的算法。而RSA是非对称加密算法的一种,也是非对称加密的事实标准。

混合密码系统意思是在对称加密的基础上,再使用非对称加密方式加密会话密钥。
单向散列函数/消息摘要函数/哈希函数/杂凑函数有一个输入和一个输出,输入成为消息,输出成为散列值。单向散列函数可以根据消息的内容计算出散列值,散列值可以用来检测消息的完整性。

单向散列函数的具体例子:MD4,MD5,SHA-1,SHA-2(SHA-256,SHA-384,SHA-512),SHA-3(Keccak),RIPEMD-160
MD4,MD5,SHA-1目前已经不再安全。SHA-2有6个版本,但是都是SHA-256,SHA-512衍生出来的。
RIPEMD已经不再安全,但RIPEMD-160目前还未攻破,比特币中使用的就是RIPEMD-160。
SHA-3标准和AES一样都是采用公开竞争的方式进行标准化,最终胜出的算法是Keccak

目前建议使用SHA-2或SHA-3

消息认证码是一种确认完整性并进行认证的技术。应用实例:SWIFT,IPsec,SSL/TLS

数字签名的作用:防止否认。

java中有一个用于生成随机数列的类,名叫java.util.Random,然而这个类不能用于安全相关用途,如果要用于安全相关用途,可以使用java.security.SecureRandom的类。

Q.E.D.


擅长前端的Java程序员