安全存储密码的网络技术

使用BCrypt


我们使用BCrypt,BCrypt,BCrypt,BCrypt,BCrypt,BCrypt,BCrypt,BCrypt和BCrypt重复几次hellip。


为什么不使用加密算法如{ MD5,SHA1,SHA256,SHA512,沙,等。}


这些都是通用散列函数,设计的目的是尽可能快地计算大量数据的摘要,这意味着它们在确保数据完整性方面非常出色,但对存储密码非常不利。


现代的服务器计算MD5哈希值约为330mb每秒。如果你的用户密码和小写的条件,数字字母混合,和6个字符,你可以在40秒钟内把代码。


根本不需要其他输入。


如果你愿意花2000美元和一到两周的时间来获取CUDA卡,你可以建立一个小型的超级计算机集群,每秒计算700000000个密码,据估计,你可以以每秒10%的速度破解这些密码。


盐不能救你


注意,非常重要:散列盐对字典和暴力是无效的。你可以在喜马拉雅使用大量的盐或盐,甚至是人工开采,冷却,有机盐粉,但它不会影响攻击者破坏你的密码的速度。


加盐或不加盐,只要你用一般散列函数来设计速度,你就会受到影响。


BCrypt的解决这些问题


如何从根本上是因为它是慢得离谱。它从Blowfish加密算法和介绍工作系数(因子)允许你确定哈希函数的强度。由于这些原因,BCrypt可以遵循穆尔定律的步骤,计算机的发展速度更快,和你还可以提高功率因数进行哈希计算更加困难。


相比于MD5,多少强度可以达到BCrypt系数工作。当工作系数设置为12,这将需要大约0.3秒使用BCrypt散列哦在我的电脑上,另一方面,它是小于1微秒,是采用MD5。


您的密码可能不需要高水平的安全,但更快的计算速度。幸运的是,BCrypt的让你平衡的速度和安全性。