[英]php blowfish hashing with crypt(): the CLI result differs from webserver's one
當我使用PHP函數crypt()使用Blowfish算法與web服務器 :
<?php
echo crypt('SAD123', sprintf('$2a$10$%s', '7711cbpe58dfpogiu049857f011werb0'));
我得到這個結果:
$2a$10$7711cbpe58dfpogiu0498u5Vh773A3qx.3LE3ro3NX7F9c9N7.pOm
但是如果我在命令行中使用PHP解釋器:
php -r "echo crypt('SAD123', sprintf('$2a$10$%s', '7711cbpe58dfpogiu049857f011werb0'));"
我得到了另一個結果:
a0SqNHxQ8/2mA
你有什么想法?
該系統是:Apache / 2.2.3(CentOS),PHP版本5.4.26
這是因為命令字符串中帶有以下數字的美元符號也被解釋為bash中的位置參數 。
當你逃避它們時,它將按預期工作:
$ php -r "echo crypt('SAD123', sprintf('\$2a\$10$%s', '7711cbpe58dfpogiu049857f011werb0'));"
因此,當你想修改comman行中的一些PHP時,你應該以交互方式運行它:
$ php -a
php > echo crypt('SAD123', sprintf('$2a$10$%s', '7711cbpe58dfpogiu049857f011werb0'));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.