小精灵
multikdf的Python项目详细描述
pymultikdf
< div >- pbkdf2
- Bcrypt
- scrypt
什么是密钥派生函数?
来自维基百科( https://en.wikipedia.org/wiki/key_derivation_function ):
在密码学中,密钥派生函数(或kdf)派生一个或多个 来自密钥值的密钥,如主密钥、密码或 使用伪随机函数的密码短语。[1][2]kdfs可用于 将键拉伸成更长的键或获取所需格式的键, 例如转换由 Diffie–Hellman密钥交换为对称密钥,用于AES。键控的 密码散列函数是伪随机的常见例子 用于密钥派生的函数。
pbkdf2(基于密码的密钥派生函数2)是密钥派生函数 作为rsa实验室公钥密码的一部分的函数 标准(PKCS)系列,特别是PKCS 5 v2.0,也发布为 互联网工程特别工作组的RFC 2898。它取代了以前的 标准的,pbkdf1,它只能产生高达160位的派生密钥 长,
bcrypt是niels设计的密码密钥派生函数。 provos和david mazi_res,基于blowfish密码,提出了 在1999年的乌塞尼克斯。[1]除了加入盐来防止 彩虹表攻击,bcrypt是一个自适应函数:随着时间的推移, 迭代次数可以增加以使其变慢,因此它保持不变 即使计算量增加,也能抵抗暴力搜索攻击 功率:
bcrypt函数是bsd和 其他系统,包括一些Linux发行版,如SUSE Linux。[2] 阴影中哈希字符串中的前缀"$2a$"或"$2b$"(或"$2y$") 密码文件指示哈希字符串是模块化的bcrypt哈希 crypt格式。[3]散列字符串的其余部分包括成本 参数,128位的salt(base-64编码为22个字符)和184 结果哈希值的位(base-64编码为31个字符)。[4] cost参数指定密钥扩展迭代计数为幂 其中两个是密码算法的输入。
在密码学中,scrypt是一个基于密码的密钥派生函数 由colin percival创建,最初用于tarsnap在线备份 服务。[1]该算法是专门为使 通过需要大量 记忆。2012年,ietf将scrypt算法作为 Internet草稿,旨在成为信息性RFC。[2]