草庐IT

Crypt_Blowfish

全部标签

php - Blowfish 加密 - 哈希已创建但不会验证

我不久前写了这段代码,现在我正在为一个新项目恢复它,但它似乎不起作用,我无法弄清楚为什么它不会验证哈希。当注册第一个passwordEncrypt()函数时,运行的2个函数如下所示。当尝试登录时调用checkPassword()函数,而不是登录并回显"is",而是进入回显“否”的部分。所以,如果有新的眼睛可以看看,请提前多谢!//EncryptuserpasswordfunctionpasswordEncrypt($password){//setthesalt$salt=substr(md5(time()),0,22);//encryptusingblowfishwithaloadof

PHP crypt() 在 5.6.4 版本中返回 *0 失败字符串,但在 5.4 中没有,

echocrypt('test',"$2a$07$");在PHP5.4.16版本中生成长散列,但它生成“失败字符串”*0在5.6.4中。阅读关于crypt()的PHP文档,我仍然不是很清楚为什么,尽管Changelog提到返回*1而不是*0取决于情况。(http://php.net/manual/en/function.crypt.php)在这种情况下返回*0的原因是什么?5.4之后的PHP是否不再容忍$2a$07$形式的坏盐? 最佳答案 Blowfish定义说你必须在第三个$之后定义一个字符串。Blowfishhashingwit

php - PHP 记住我系统中的安全 token 是否需要 Blowfish?

我搜索过SO,我知道有很多“记住我”的问题,但我找不到专门关于使用Blowfish生成安全token的问题。我正在实现一个登录系统以使用基于cookie的“记住我”功能,我读过的所有教程要么看起来不安全(例如,只是基于时间的未加盐的md5哈希)要么看起来过于复杂.我不是要为银行或类似机构建立网站,只是想要一个合理的安全级别。我提议的系统只是为用户名创建一个128字符的随机字符串,为登录token创建第二个128字符的字符串。原始字符串将存储在cookie中,未加盐的sha1版本将进入数据库中用户帐户的行。我想我什至可以在每次加载页面时重新生成字符串。对我来说,这提供了不错的安全性(我认

php - 当我使用加盐的 CRYPT_MD5 来加密我的密码时,加密的是什么?

对字符串使用md5始终会产生字母数字加密结果,即:无符号。但是,当我使用phpcrypt()函数时,特别是CRYPT_MD5(它是打开的,我已经检查过)和盐时,它返回的假定md5散列看起来不像md5散列。例如:如果我对字符串'password'进行md5,我会得到:$pass=md5('password');echo$pass;//5f4dcc3b5aa765d61d8327deb882cf99如果我使用CRYPT_MD5,它由“$1$”前缀和“$”后缀表示,盐为“salt”:$pass=crypt('password','$1$salt$');echo$pass;//$1$salt$

php - crypt($pass, '$2y$09$salt' ) === crypt($pass, crypt($pass, '$2y$09$salt' )) 在 PHP 中如何运行?

我确实对crypt()PHP函数感到困惑。当第二个crypt显然使用不同的第二个参数时,以下两个crypt函数如何给出相同的输出?差异盐意味着差异哈希对吗?echocrypt("password",'$2y$09$anexamplestringforsalt$')."\n";echocrypt("password",crypt("password",'$2y$09$anexamplestringforsalt$'))."\n";输出:$2y$09$anexamplestringforsale/.K.VdgECUVEd9N4ja3u1WtgPi5BXZq 最佳

PHP:PEAR:使用 Crypt_CBC 加密,使用 Perl 的 CBC 解密

我必须完成的任务之一需要我从PHP端加密某些内容,然后使用Perl对其进行解密。PEAR我发现似乎适合我需要的模块是Crypt_CBC。但是,一定有我做错了或不明白的地方,因为到目前为止我一直无法获得正确的结果。下面的代码摘录专门用于测试目的,因为我想在将其应用到我的实际项目代码之前全部尝试一下。首先,这是我的PHP代码,我用它加密传递给$text参数的任何内容(即cryptTest.php?text=hello)require_once('Crypt/CBC.php');$key="8326554161EB30EFBC6BF34CC3C832E7CF8135C1999603D4022

Zend Server CE 5.5 中带有 sha256 的 PHP crypt() 会截断提供的盐

在从ZendServerCE5.1升级到ZendServerCE5.5的过程中,PHP也从5.3.5升级到5.3.8。在此转换之后,我正在处理的zend应用程序的登录功能突然中断。尝试调试它,它看起来像crypt()的实现没有反射(reflect)PHP手册,或者我误解了它。如果我敢猜测,是后者。我使用16个字符的长盐作为使用SHA256的更大盐的一部分,这在PHP手册中用作示例。$password=//stringenteredatlogin$salt='$5$rounds=250000$1234abcd5678defg$';在我对输入的密码进行哈希运算之后$hash=crypt($

php - Crypt 和 Salt 如何比 MD5 更安全地抵御暴力攻击?

我在PHP.net上看到MD5没用,他们建议使用crypt+salt。于是,我就去看了他们的功能描述或者在我的例子中是这样的:$stored_password=fetch_password($user);if(crypt($_REQUEST['password'],$stored_password)===$stored_password){//ok}因此,当我看到盐存储在散列密码中并且您使用该散列密码作为盐时,我认为Crypt+Salt对于输出的暴力破解(设法窃取散列密码的黑客)并不更安全).它更安全吗?对于字典攻击,我能理解它的威力,但对于对散列密码的暴力攻击,我看不到它的优势。

php crypt() 河豚盐长度向后兼容

我使用crypt()来散列密码,使用像这样的河豚盐:$2a$,2digits,$,21charsin[a-zA-Z0-9]这里我犯了一个错误,第三个$之后的字符长度是21而不是22。但它工作正常,所以我没有发现错误。它适用于我运行Windows和php5.4.4的桌面,以及运行Amazonlinux和php5.3.x的AWSec2,盐太短。有一天我将AWSphp更新到5.5.14。然后问题发生了。crypt()始终返回*0。经过一些尝试,我在salt的末尾添加了一个$,所以它变成了22个字符。它再次工作并返回与以前相同的哈希字符串。虽然它不遵守河豚规则,但字符应该是[./a-zA-Z0

PHP crypt() Blowfish 函数不工作

这是我第一次在PHP中使用crypt()函数,我不明白为什么它不起作用。我的代码基于这篇文章:http://www.techrepublic.com/blog/australia/securing-passwords-with-blowfish/1274functionblowfishHash($pw){//generaterandomsalt$salt="$2y$10$";for($i=0;$i我用示例密码“password”调用了该函数。生成的盐是:$2y$10$NzRQNjTRfP4jXKvb4TCO.G但密码是"$2mV0NZp92R3g"–这似乎太短了。有人可以帮我弄清楚我做