1、密码学(cryptography)是一种关于隐藏信息的学科。
2、加密是一种将数据从纯文本或明文格式,转换为编码或加密文本格式的密码技术!而加密算法是就数据转换为密文的通用规则集或指令集。
3、加密密码通常有两种主要类型:流密码、块密码!
4、散列加密是一种将明文转换为密文的单向加密!
5、常见的散列加密算法有:MD5、安全散列算法(hash)、NTLAN管理器(NTLM#)、RACE完整性基元评估信息摘要(RIPEMD)、基于散列的消息认证代码(HMAC)!
6、对称加密是一种双向加密机制,在这种加密机制中,加密和解密都使用同一个密钥。存在的潜在缺陷是由于需要在双方之间共享密钥,因此存在密钥破坏或丢失的可能性!
7、常见的对称加密算法有:数据加密标准(DES)、3DES、高级加密标准(AES)、blowfish、towfish、rivest密码(RC)4,5,6。
8、非对称加密使用公钥和私钥来实现,公钥用于加密(安全保障是这种密钥不会在双方之间共享),私钥由于解密。
9、常见的非对称加密有:RSA、Diffie-Hellman(DH)、椭圆曲线密码(ECC)、Diffie-Hellman临时(DHE)、椭圆曲线Diffie-Hellman临时(ECDHE)。
10、加密密钥是一种与算法相结合执行加密和解密任务的特殊信息形式,不同的密钥可以使用在同一个算法中,形成不同的密文。简单来说,密钥是算法产生的实际数值,与加密算法相比基本的加密过程是相同的!
11、密码组合是一组用于建立主机之间安全连接的对称与非对称加密算法集合。通常会结合传输层安全(TLS)和安全套接字(SSL)网络协议。
12、密码组合定义了一种密钥交换算法、批量加密算法、消息认证代码算法、伪随机函数!
13、密钥延伸是加强弱密钥的一种技术,包括:
重复循环执行密码散列函数
重复循环分组密码
在密钥应用于密码的位置上,配置密码的密钥,一种实施密钥延伸的流行做法是使用一个密钥导出函数。
基于密码的密钥导出函数2(PBKDF2),需要使用5个输入参数来创建衍生密钥:一个伪随机函数,如散列和密码以及HMAC等、用于生成衍生密钥的主密码、密码盐(salt)、特定次数的迭代,使函数重复运行、衍生密钥的期望长度!
Bcrypt函数!
本文转自 eth10 51CTO博客,原文链接:http://blog.51cto.com/eth10/1981833