目前,我的代码使用标准的sha1
进行密码哈希以实现数据库功能。
是否有更好、更安全的方式来存储密码?也许是MD5(开玩笑的)
例如,我正在使用Codeigniter作为我的框架,那么加密密码的最佳方式是什么?
目前,我的代码使用标准的sha1
进行密码哈希以实现数据库功能。
是否有更好、更安全的方式来存储密码?也许是MD5(开玩笑的)
例如,我正在使用Codeigniter作为我的框架,那么加密密码的最佳方式是什么?
salt = For each user generate a random seed with a random length.
iterations = Select a random number
while(iterations != 0) {
hashed_password = hash_function(password.salt) . salt; iterations-- }
hashed_password:salt:hash_function:iterations.
在登录时,请使用新密码与盐、哈希函数和迭代结合使用进行哈希处理,并将结果与哈希后的密码进行比较。
当然,您可以使用多个哈希函数,例如 sha_x(md5(salt.password).salt).salt 或其他任何哈希函数,但一定要以某种方式保存它,以便在登录时进行比较。
2005年2月15日
SHA-1被破解
SHA-1已经被破解。不是简化版,也不是减少轮数的版本。是真正的SHA-1。
来自中国山东大学的王小云、尹丽sa和于洪波(主要成员)的研究小组一直在悄悄地传播一篇论文,描述了他们的结果:在2*69个哈希操作中找到了完整的SHA-1碰撞,比基于哈希长度的2*80次暴力攻击少得多。
在2**39个操作中找到了SHA-0的碰撞。
在2**33个操作中找到了58轮SHA-1的碰撞。
看看这个比较列表。