2

我被要求将登录表单指向一个外部站点,其中登录和密码应该出现在 URL 中,并且密码应该是 Blowfish 加密的。我得到了一个“密钥”,其格式为:"nnn-nnnssssssssssssssssssssssssnnnnnn"其中 n 是一个数字,s 是一个字母(其中 24 个)。

从 PHP 文档看来,要使用 crypt() 触发 Blowfish 加密,需要以特定格式提供盐,以“$2a$”开头,但这不是我提供的密钥的格式。这是否意味着我需要提供自己的盐?如果是,那么提供给我的钥匙有什么意义?

4

2 回答 2

1

crypt 是一个散列函数,它不是用于加密的。要真正加密你需要 mcrypt 或纯 php 实现的东西(我记得在 pear 中看到过一些东西)。

于 2010-09-07T08:50:46.923 回答
1

试试这个作为盐:$2a$nn$nnnnssssssssssnnn$(没用)

那时它不是哈希,您必须使用 mcrypt 或 PEAR 库:

http://pear.php.net/package/Crypt_Blowfish

例子:

http://www.chilkatsoft.com/p/php_blowfish.asp

我没有看到 IV,所以模式必须是 ECB(弱),整个事情将是关键。

于 2010-09-07T08:57:57.110 回答