相关疑难解决方法(0)

如何在PHP应用程序中提供bcrypt(我应该)?

我正在为一个相对成熟的开源PHP项目做出贡献.最近,我发现它将密码存储为普通的MD5哈希,这对我来说非常麻烦.我想如果我要修复它,我也可以选择Do It Right(tm),所以我想使用bcrypt.

首先,我发现其他语言:bcrypt-ruby似乎使用OpenBSD的原始C代码或jBCrypt的java代码. py-bcrypt是BSD代码的一个薄包装器. BCrypt.net是直接移植jBCrypt.

现在,PHP本身在crypt函数中支持bcrypt(虽然误称为'blowfish').但是,5.3之前的版本需要系统本身的支持,通常由crypt_blowfish提供. phpass是相同的,建议安装PHP 5.3或Suhosin.

由于该应用程序的许多用户使用标准共享主机,我不想要求服务器的任何特殊配置.我希望只是从PHP的5.3版本中窃取代码,但它是在C中,并且(从我刚刚完成的一小部分阅读中)我不能要求为项目的用户使用C扩展.

我想到只是创建一个纯粹的PHP端口bcrypt,但是看看jBCrypt的来源,我不确定我应该,因为我对PHP或河豚不太熟悉,这里的错误可能是同时的首先是危险且难以察觉的.

所以,我向你提出两个(多部分)问题:

  1. 我缺乏PHP知识是否能让我受益匪浅?我真的可以使用已经创建的实现之一吗?
  2. 我是否应该只创建一个简单的loooping函数来调用sha1()md5()重复调用一些可配置的次数?

php security passwords bcrypt

6
推荐指数
1
解决办法
2050
查看次数

标签 统计

bcrypt ×1

passwords ×1

php ×1

security ×1