我正在运行一个使用密码散列的网站,但我认为当前的算法还不够。我尝试将PHP的crypt()与blowfish选项一起使用,但我的PHP版本仅为5.2,因此未启用CRYPT_BLOWFISH。我见过可以通过Blowfish加密的第3方库,但没有一个库执行完整的Bcrypt散列。是否有任何您知道的PHP库在不使用crypt()函数的情况下具有bcrypt散列?或者,更好的是,将第3方blowfish加密算法提供给第3方bcrypt哈希算法的任何方法?澄清一下,我无法安装更新版本的PHP,因为我在共享主机上。如果有任何建议,我将不胜感激!谢谢! 最佳答案
经过一些故障排除后,我确定当我使用PHP的password_hash函数散列密码时,加密标识符是$2y$。但是,当我使用password_verify函数将存储的散列密码与用户输入的密码进行比较时,password_verify不会返回true。如果我使用https://www.bcrypt-generator.com/上的$2a$标识符生成新密码并用它替换存储的散列密码,它返回true。我希望有人能解释为什么password_hash($password,PASSWORD_DEFAULT)使用$2y$以及为什么password_verify()使用$2a$。或者我在这里可能做错的任何
我已经有一个web应用程序,我已经使用加密了我的所有密码Hash::make($string);什么是核心php中的等价物,这将帮助我的android开发人员与我的应用程序同步。我试过散列和地穴,它不一样。帮助我,这样我的开发人员就可以更轻松地编写后端。 最佳答案 尝试使用password_hash($string);你可以使用来验证它password_verify($string,$hash);希望对您有所帮助!! 关于php-核心php中的LaravelHash等价物,我们在Stac
当我对一个大文件(5GB)调用hash_file时,我注意到我机器的内存使用量上升了。操作成功完成,但我想知道hash_file的内部实现是将文件内容流式传输到哈希算法中,还是尝试先将整个文件内容加载到内存中。有人知道吗? 最佳答案 还没有人正确回答这个问题,所以我正在回答我自己的问题。经过一些测试后发现hash_file确实将文件作为流操作,而不是在内部使用一些愚蠢的东西,比如file_get_contents。通过使用php_memory_limit值低于被散列文件大小的环境进行测试。(一开始就应该这样做,对噪音感到抱歉。)
我想将其应用于浏览器:header('Cache-Control:max-age=3600');但将其应用于我的CDN:header("Cache-Control:no-cache");换句话说,我希望CDN将其视为动态内容,但浏览器仍将响应存储在其本地缓存中。有什么标准的方法可以做到这一点吗? 最佳答案 你可以这样做Cache-Control:private,max-age=3600以便绕过最终的CDN/中间代理。 关于php-仅限浏览器的缓存控制-不是CDN,我们在StackOver
根据(相对)新的PHP文档:password_hash函数使用随机盐(我们不应该担心..O_O),所以如果我理解正确,盐必须存储在某个地方,否则用户在注册到网站后将无法登录(不同的盐=>不同的哈希值。)函数文档没有说明与数据库交互的任何信息,并且由于我认为存储每个用户的数据只能通过数据库进行扩展,那么该函数到底在哪里存储随机盐?像session数据这样的txt文件? 最佳答案 让我们从其他人告诉你的例子中学习:$options=['cost'=>11,'salt'=>'abcdefghijklmnopqrstuv',];echopa
我可以在PHP5.5password_hash()和password_verify()中使用的最大密码长度是多少? 最佳答案 好的,让我们来看看这个。函数确实有密码长度限制。就像PHP中的所有字符串一样,它被限制为2^31-1个字节。需要明确的是,PHP无法处理比这更大的任何事情(至少在今天)。所以功能本身是有限的。但是底层的加密算法呢。BCrypt仅限于处理密码的前72个字符。然而,这通常不是问题asexplainedinthisanswer.所以简而言之,是的它确实有一个有效的限制(它只会使用默认且唯一的算法“使用”前72个字符
这个问题在这里已经有了答案:SecurehashandsaltforPHPpasswords(14个答案)关闭7年前。我有一个非常小的网站,最近我一直在努力让它更安全,我过去常常以纯文本形式存储我的密码。我认为我做的是对的,但作为一个“业余”程序员,我想确定一下所以我问你们,专业人士当用户注册时,我执行:password_hash($their_password,PASSWORD_DEFAULT)并将其存储在用户表的“密码”列中。我使用PASSWORD_DEFAULT因为根据php.net这似乎是最好的。Notethatthisconstantisdesignedtochangeove
据我了解,新PHPpasswordhashingextension最重要的功能之一(或一般的bcrypt)是算法的速度,它大大减慢了暴力攻击方法。但它仍然以一定的速度运行,这对于字典攻击和暴力破解弱密码来说肯定足够了,[据说]短于六个字母数字字符。所以我想知道,它为什么这么慢,尤其是-哪种密码强度被认为可以安全使用。“你能想象的那么强大”不是答案,因为密码强度始终是安全性和可用性之间的权衡——所以,我正在寻找可以被认为是安全的,甚至是面向future的最小强度。请注意,我是一个实践者-因此,基于具体数字的确定答案比冗长而空洞的理论推理和不确定的结论更可取。进一步澄清,假设最坏的情况:用
我明天将推出自己的网站,预计会有几百次访问。我根据PHP.net告诉我的内容编写了这个脚本:';}else{echo'';}?>基本上,如果code.jquery.com的CDN出现故障(就像大约20分钟前一样),那么GoogleAPI库就会启动。我在jQuery启动时尝试过它,它可以工作,但只是万一它再次下降,这个脚本真的有效吗?(通过切换到Google的库)我无法真正测试它,我必须让code.jquery.com下线。哈哈。我会替换CSS,但我的整个网站都基于jQuery和Ajax,所以我确实需要它始终正常运行。我会在我自己的网站上托管它,但我的网站在任何地方都没有运行良好的cod