1
SErHo 2014-02-15 15:01:34 +08:00 1
|
2
raincious 2014-02-15 15:22:09 +08:00 1
献丑下被骂过之后写出的代码,我现在就用它了:https://github.com/raincious/facula/blob/master/Unit/Passworder.php#L85
先用SHA512包裹着站点Salt算指定次数,然后产生一个随机Salt交给crypt混着运算Hash。保存的时候随机Salt+Hash存在数据库里。效验的时候拿随机的Salt和用户输入重新再算一次,匹配就是了,不匹配肯定有问题。 缺点是crypt的算法不同服务器的支持不一样,所以配置站点的时候得小心(所以我设定BlowFish优先级最高,确保服务器支持BlowFish就好了)。但我自己用的很舒服。 还有一个缺点就是站点Salt一旦更改,所有的密码都会失效。不过这一点正和我意嗯。 |
3
zoowii 2014-02-15 15:22:21 +08:00
和我差不多
|
4
jakwings 2014-02-15 23:01:39 +08:00
|
5
mengzhuo 2014-02-16 00:08:13 +08:00 1
一直用Django的,差不多就是这样的
"%s%s" % salt, sha256(salt+raw_password) |
6
rankjie 2014-02-16 13:44:01 +08:00 via iPhone 1
一般来说做hash主要是防止在站点已被脱库的时候保护密码原文不被破解,那么采用简单sha/md5的那就不是很健壮了。加了salt再hash,要是salt存在db,那也和前一种没差。所以我选择bcrypt,你值得拥有。。。代价就是登录部分的函数处理时间基本都是三四百ms。。。
|