草庐IT

CRYPT_BLOWFISH

全部标签

php - 使用 crypt() 加密

我目前正在做一个非常安全的登录系统,但我是crypt()函数的新手,需要一些快速帮助。我在注册过程中使用crypt()对密码字符串进行加密并将其保存到数据库中。但是,我如何才能在登录期间解密key?或者我应该怎么做?或者是否可以对提交的密码字符串施展魔法,将其与数据库中的加密key进行比较? 最佳答案 crypt()不加密密码,它哈希它们。根本区别在于,您无法找回经过哈希处理的密码(想想炸薯饼-如果您有炸薯饼,就无法找回土bean)。因此您将相同的函数应用于输入并将其结果与存储在数据库中的值进行比较:$stored_pw=get_h

php - CRYPT_BLOWFISH 中盐的长度

在PHP手册中指出:CRYPT_BLOWFISH-Blowfishhashingwithasaltasfollows:"$2a$",atwodigitcostparameter,"$",and22digitsfromthealphabet"./0-9A-Za-z".我意识到盐的长度是22。我编写了以下代码并注意到salt的输出长度是21。$encoded=crypt('pass','$2a$08$QAZXSWEDCVFRTGBNHYUJMK');//LenghtofQ...Kis22echo$encoded;输出:$2a$08$QAZXSWEDCVFRTGBNHYUJM./CR85.t

php - CakePHP - 无法使用 Blowfish Auth 登录用户

我正在使用CakePHP构建网络应用程序。我想使用bcrypt/Blowfish进行密码加密。用户注册工作正常,包括使用bcrypt散列密码。但不知何故我之后无法登录-应用程序显示用户名/密码错误但输入正确。这是我关于授权的代码:AppController中的Auth组件设置:public$components=array('Session','Auth'=>array('loginAction'=>array('controller'=>'users','action'=>'login'),'authenticate'=>array('Form'=>array('userModel'

php blowfish 哈希与 crypt() : the CLI result differs from webserver's one

当我使用使用Blowfish算法的php函数crypt()时withweb-server:我得到这个结果:$2a$10$7711cbpe58dfpogiu0498u5Vh773A3qx.3LE3ro3NX7F9c9N7.pOm但是如果我使用PHP解释器命令行:php-r"echocrypt('SAD123',sprintf('$2a$10$%s','7711cbpe58dfpogiu049857f011werb0'));"我得到另一个结果:a0SqNHxQ8/2mA你有什么想法吗?系统是:Apache/2.2.3(CentOS),PHP版本5.4.26 最佳

php - 使用 Blowfish 和 ECB 将 mcrypt 迁移到 OpenSSL

我一辈子都想不出如何将我遗留的mcrypt代码迁移到OpenSSL。我用CBC为Blowfish和CBC为Rijndael工作,但是Blowfish和ECB却让我望而却步。是的,我读了MovingfrommcryptwithBlowfish&ECBtoOpenSSL我尝试对数据进行零填充,而不是对数据进行零填充,对key进行零填充,循环遍历key以及它们的任意组合,但似乎没有任何效果。这是我的代码:这是输出:test.php:13:string(12)"5z0q3xNnokw="test.php:14:string(12)"1zyqavq7sCk=" 最佳答

c# - C# 和 PHP 中的 Ruby string#crypt

我有一个ruby​​客户端程序,它像这样用string#crypt加密密码encrypted=password.crypt(SALT)#removingfirsttwocharacterswhichactuallyarethesaltforsafetyreturnencrypted[2,encrypted.size-2]然后它将它发送到服务器以与它存储的预加密字符串进行比较。我如何需要能够从c#应用程序和php网页发送相同的加密密码,并且仍然能够使用来自任何其他客户端的相同密码登录。C#和php中用于加密的等效代码是什么? 最佳答案

php - 将 crypt() salt 存储在数据库中以进行密码比较是否安全

请原谅我,我对密码安全和加密完全陌生......我在比较使用php的crypt()函数(使用blowfishhasing方法)加密的存储密码与用户输入时遇到问题。我发现可以比较密码的一种方法是存储加密期间使用的盐,然后加密用户输入并将其与存储的密码进行比较。这是一种安全的做事方式吗?还是有更好(更安全)的方法?谢谢。 最佳答案 PHP生成散列的函数会将盐包含在生成的散列值中。所以如果你存储这个散列值,你就已经存储了盐。验证函数只需提取此盐并再次使用它进行验证即可。这种方法是安全的,盐不是secret。PHP5.5版将内置对BCryp

php - 使用 crypt(),我的应用程序如何验证随机生成盐的密码?

我一直在查看PHP'scryptfunction和Stackoverflow上的一些questions,我正在尝试找出加盐和散列密码。我在PHP社区页面上找到了这个:类似的东西与:这是另一个question的摘录:However,thePHPcrypt()functioncanuseavarietyofdifferenthashestocomputethehash.Whenyouprefixyoursaltwith"$1$"yougetahashwithanMD5.Whenyouprefixwith$2$yougetacryptwithblowfish,whichismoresecur

php - 在 ruby​​ 中使用 Blowfish 加密字符串返回的字符串比 php 中的相同进程更短

这让我很困惑。当我尝试使用以下输入通过Blowfish加密字符串时:key=“一些key”input="输入字符串"我得到以下结果:ruby:["79af8c8ee9220bde"]php:79af8c8ee9220bdec2d1c9cfca7b13c6我将从php应用程序接收字符串,因此我需要让这两个应用程序同步,但我不明白为什么php字符串会更长。我错过了什么?php代码:php>require_once'Crypt/Blowfish.php';php>$input="inputstring";php>$key="somekey";php>$crypt=newCrypt_Blowf

php - 我是否在 PHP 中正确使用了 CRYPT_BLOWFISH?

我打算将它用于用户密码系统,但我首先要确保我做的是正确的。这是我的测试代码:functiongenerateBlowfishSalt(){$chars='0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ./';$numChars=strlen($chars);$salt='';for($i=0;$i',$password);printf('salt:%s',$salt);printf('hash1:%s',$hash1);printf('hash2:%s',$hash2);printf('compare:'.$