草庐IT

Crypt_Blowfish

全部标签

php - 使用 PHP 的 crypt 的河豚盐的正确格式是什么?

我已阅读PHPManualEntryforcrypt()上提供的信息,但我发现自己仍然不确定用于触发Blowfish算法的盐的格式。根据手动输入,我应该使用“$2$”或“$2a$”作为16个字符的字符串的开头。但是,在后面给出的示例中,他们使用了更长的字符串:'$2a$07$usesomesillystringforsalt$',这向我表明无论我提供什么字符串都将被切分以适合模型。我遇到的问题实际上是触发Blowfish算法与STD_DES。示例:$foo='foo';$salt='$2a$'.hash('whirlpool',$foo);//128characters,willbet

php - 使用 PHP 的 crypt 的河豚盐的正确格式是什么?

我已阅读PHPManualEntryforcrypt()上提供的信息,但我发现自己仍然不确定用于触发Blowfish算法的盐的格式。根据手动输入,我应该使用“$2$”或“$2a$”作为16个字符的字符串的开头。但是,在后面给出的示例中,他们使用了更长的字符串:'$2a$07$usesomesillystringforsalt$',这向我表明无论我提供什么字符串都将被切分以适合模型。我遇到的问题实际上是触发Blowfish算法与STD_DES。示例:$foo='foo';$salt='$2a$'.hash('whirlpool',$foo);//128characters,willbet

php - 用于密码散列的 Crypt。河豚产生奇怪的输出

我在理解php的crypt函数时遇到了一些麻烦。我的PHP版本是5.4.7。我想使用crypt将加盐密码存储在数据库中,因为据我所知,使用md5散列密码的开发人员将被当场质押和销毁。我想使用河豚算法来生成哈希。现在,根据php文档,如果您使用“$2y$”+cost(例如:“08”)+“$”+22个字符盐(./0-9A-Za-z)调用它,crypt将使用河豚.然而,这一小段测试代码的输出让我感到困惑:echo"";if(CRYPT_BLOWFISH==1){echo'BlowfishSaltLen=18:'.crypt('stringthatshouldbehashed','$2y$08

php - 用于密码散列的 Crypt。河豚产生奇怪的输出

我在理解php的crypt函数时遇到了一些麻烦。我的PHP版本是5.4.7。我想使用crypt将加盐密码存储在数据库中,因为据我所知,使用md5散列密码的开发人员将被当场质押和销毁。我想使用河豚算法来生成哈希。现在,根据php文档,如果您使用“$2y$”+cost(例如:“08”)+“$”+22个字符盐(./0-9A-Za-z)调用它,crypt将使用河豚.然而,这一小段测试代码的输出让我感到困惑:echo"";if(CRYPT_BLOWFISH==1){echo'BlowfishSaltLen=18:'.crypt('stringthatshouldbehashed','$2y$08

php - 为什么 crypt/blowfish 使用两种不同的盐生成相同的散列?

这个问题与PHP对crypt()的实现有关。.对于这道题,salt的前7个字符不算在内,所以salt'$2a$07$a'可以说长度为1,因为它只有1个salt字符和七个字符的元数据。当使用长度超过22个字符的salt字符串时,生成的哈希值没有变化(即截断),当使用长度小于21个字符的字符串时,salt将自动填充(使用'$'字符,显然);这很简单。但是,如果给定一个20个字符的salt和一个21个字符的salt,其中除了21长度的salt的最后一个字符之外两者是相同的,那么两个散列字符串将是相同的。一个22个字符长的salt,除了最后一个字符外,与21个长度的salt完全相同,哈希值将再

php - 为什么 crypt/blowfish 使用两种不同的盐生成相同的散列?

这个问题与PHP对crypt()的实现有关。.对于这道题,salt的前7个字符不算在内,所以salt'$2a$07$a'可以说长度为1,因为它只有1个salt字符和七个字符的元数据。当使用长度超过22个字符的salt字符串时,生成的哈希值没有变化(即截断),当使用长度小于21个字符的字符串时,salt将自动填充(使用'$'字符,显然);这很简单。但是,如果给定一个20个字符的salt和一个21个字符的salt,其中除了21长度的salt的最后一个字符之外两者是相同的,那么两个散列字符串将是相同的。一个22个字符长的salt,除了最后一个字符外,与21个长度的salt完全相同,哈希值将再

php - crypt() 未按需运行

我正在使用crypt如下:$pass=crypt($pass,'d4');用于针对mysql表插入和验证密码。问题是如果密码相似,它会产生相似的结果。是否有一种算法可以保证对不同的密码产生不同的结果? 最佳答案 使用hash()并选择适合你的哈希算法(如果可能的话,比MD5强的算法,但也不要一直使用SHA512)关于crypt()的手册页,你会发现这个:ThestandardDES-basedcrypt()returnsthesaltasthefirsttwocharactersoftheoutput.Italsoonlyusest

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

在(不太遥远的)过去,(由长期在这里工作的人)做出了一个决定,即在需要外部通信时,始终将数据库ID即时“加密”为其他内容。现在,我们的主要应用程序已从PHP5.x迁移到PHP7.0,分散在基础架构中的微服务运行的是7.0或7.1。7.1服务器不断抛出mcrypt内容的弃用警告。没什么大不了的,只是现在。但是随着PHP7.2的临近,我们希望不断更新和升级。Mcrypt正在阻止。要将所有当前加密的值保存在1400个数据库的60个表中,是一项艰巨的任务。有没有办法利用OpenSSL、Blowfish和ECB来获得相同的编码和解码值,从而让我们产生一种错误的安全感?这样我们就可以提前规划数据库

php - 如何使用河豚自动为crypt方法生成盐

我刚开始学习PHP,我想为我最后一年的大学项目创建一个带有登录名的网站。我读过河豚是在许多地方散列的最佳方法,如下所示:openssl_digestvshashvshash_hmac?DifferencebetweenSALT&HMAC?我读到的有关crypt方法的任何地方都包含一个字符串,如$2y$07$usesomesillystringforsalt$我的主要问题是:我如何随机生成它?我在一些地方读到时间戳和mt_rand()不安全。我还听说AES是最近的首选技术,但据我所知,用PHP实现它似乎非常棘手!blowfish仍然是一种可以接受的保护存储密码的方法吗?

php - 如何从模数、指数和私有(private)指数创建 Crypt::RSA 对象?

我正在尝试将以下php功能移植到perl:publicfunctionloadKey($mod,$exp,$type='public'){$rsa=newCrypt_RSA();$rsa->signatureMode=CRYPT_RSA_SIGNATURE_PKCS1;$rsa->setHash('sha256');$rsa->modulus=newMath_BigInteger(Magicsig::base64_url_decode($mod),256);$rsa->k=strlen($rsa->modulus->toBytes());$rsa->exponent=newMath_B