jjzjj

php - 了解 PHP password_hash 使用的 bcrypt salt

我在理解bcrypt如何使用盐时遇到了一些麻烦。我知道盐有什么用,但我不明白盐值是如何使用的。问题1:正确的盐长度是多少?我发现的所有来源都说,盐的长度为22,并且它与算法、成本和结果字符串中的实际哈希值一起存储。但是,我发现的所有实现都使用长度为32的盐。例如FOSUserBundle使用的Symfony使用以下代码来创建盐:$this->salt=base_convert(sha1(uniqid(mt_rand(),true)),16,36)由于sha1哈希长度为32个字符,因此生成的salt的长度也为32。这只是一个懒惰的实现,跳过将字符串修剪为22长度的代码,因为这是由bcry

php - 我如何在 PHP 应用程序中销售 bcrypt(我应该这样做)?

我正在为一个相对成熟的开源PHP项目做贡献。最近,我发现它将密码存储为纯MD5哈希值,这对我来说很麻烦。我想如果我要修复它,我还不如DoItRight(tm),所以我想使用bcrypt。首先,我发现了其他语言:bcrypt-ruby似乎使用来自OpenBSD的原始C代码或jBCrypt的java代码。py-bcrypt是BSD代码的薄包装。BCrypt.net是jBCrypt的直接端口.现在,PHP本身在thecryptfunction中支持bcrypt(尽管被误称为简单的“河豚”).但是,5.3之前的版本需要系统本身的支持,一般由crypt_blowfish提供。.phpass相同,

php - Laravel 4.2 验证规则 - 当前密码必须匹配数据库值

在密码重置表单中,用户提供current_password、password和password-confirmation。有没有办法在验证规则中指定current_password(它的哈希值)必须与数据库值匹配?目前我有这个:$rules=array('current_password'=>'required','password'=>'required|confirmed|min:22');谢谢。更新感谢@ChrisForrence和@Ben,我想出了以下非常有效的方法!非常感激。希望这会帮助其他人:Validator::extend('hashmatch',function($a

php - 如何比较 laravel 中的两个加密(bcrypt)密码

如何比较两个bcrypt密码$pass1='$2y$10$ooPG9s1lcwUGYv1nqeyNcO0ccYJf8hlhm5dJXy7xoamvgiczXHB7S';和$pass2='$2y$10$QRgaiS6bpATKKQeT22zGKuHq.edDfXQc2.4B3v.zaN.GtGwoyQuMy';$pass1和$pass2都是用于“测试”的bcrypt。我如何检查是否相等。不使用像这样的文本“测试”$hash1=Hash::make('test');$hash2=Hash::make('test');var_dump(Hash::check('test',$hash1)&&

java - 在 Android App 中使用 jBCrypt 加盐密码会导致长时间挂起

我正在使用jBCryptLibrary在用户使用我的应用程序注册时对用户密码进行哈希处理。我正在使用基本的散列函数,加盐,如下所示:Stringpass=BCrypt.hashpw(rawPass,BCrypt.gensalt());我在注册时注意到一到两分钟的挂起,并检查了调试器,确认是BCrypt造成的。加盐密码真的需要那么的处理能力吗?如果是这样,一个好的替代方法是将明文密码发送到服务器以对其进行哈希处理吗?我对此事的最初想法是在将其发送到任何地方之前对其进行哈希处理。有什么想法吗? 最佳答案 这里是anarticle其中列出

论单向加密算法Bcrypt

最近在学习关于加密算法的知识,经过一天学习也算是有了一点浅浅的收获,随手记一下。一、加密算法有哪些?首先,在开始了解加密算法之前只想知道Bcrypt算法是如何加密的,但随着后面不断的搜索,就慢慢冒出了一大堆的加密算法,看的我是眼花缭乱。接下来就来说说有哪些加密算法。MD5:为计算机安全领域广泛使用的一种散列函数,用以提供消息完整性的保护,是一种消息摘要算法,它是不可逆的单向加密算法。RSA:是一种可逆的非对称加密算法。是目前最有影响的公钥加密算法,并被普遍认为是目前最优秀的公钥方案之一。Bcrypt:是一种不可逆的单向加密算法。相比于MD5,它的加密过程更久,因此也比MD5更安全,通过暴力的破

python - 尝试在 Windows (x64) 上安装 Python bcrypt 时出现的大量问题

这个问题已经提到了elsewhere,但它没有提供有效的解决方案,所以我仍然想保留一张票。c:\Users\me\Desktop\temp\py-bcrypt-0.2>setup.pyinstallbuild--compiler=mingw32runninginstallrunningbuildrunningbuild_pyrunningbuild_extbuilding'bcrypt._bcrypt'extensionC:\MinGW\bin\gcc.exe-mno-cygwin-mdll-O-Wall-IC:\Python27\include-IC:\Python27\PC-cbc

python - 在 Windows 7 中安装 py-bcrypt 时出现编译器错误

我需要安装Flask模块flask-bcrypt,它需要py-bcrypt。当我尝试安装它时,出现错误:C:\Users\Param\Downloads\py-bcrypt-0.3>pythonsetup.pyinstallrunninginstallrunningbdist_eggrunningegg_infowritingpy_bcrypt.egg-info\PKG-INFOwritingtop-levelnamestopy_bcrypt.egg-info\top_level.txtwritingdependency_linkstopy_bcrypt.egg-info\depend

ruby-on-rails - Windows 上的 Ruby 导致错误 Cannot load such file bcrypt_ext

每当我转到railss或rakedb:migrate时,尝试在我的Windows7机器上运行ruby​​,我收到以下错误无法加载此类文件bcrypt_ext。我的ruby​​版本是2.2.1,rails版本是4.2.0,bcrypt版本是3.1.10。当我运行bundleinstall时,所有gem都正确安装,但是每当我尝试rake时,它​​都会给我这个错误。任何帮助将不胜感激 最佳答案 你需要使用这里所说的:https://www.alib.jp/entries/bcrypt_ext_load_error_on_ruby21xC:

windows - winapi 的 bcrypt.h 实际上支持 bcrypt 哈希吗?

这听起来像是一个奇怪的问题,我实际上不得不问这个感觉有点奇怪,但是在花了几个小时查看MSDN文档以了解添加的bcrypt例程之后在Vista中,我几乎得出结论,没有实际的bcrypt支持!根据维基百科:bcryptisanadaptivecryptographichashfunctionforpasswords...basedontheBlowfishcipher...Besidesincorporatingasalttoprotectagainstrainbowtableattacks,bcryptisanadaptivehash:overtimeitcanbemadeslowera