0

有些人可以在我的网站上注册。对于密码,我使用了这个:

$key = "thisisasuperkey"; 
$key_crypted = md5($key); 
$pass = "thisisasuperpassword"; 
$pass_crypted = crypt($pass, '$2y$12$'.$key_crypted.'$');

这段代码返回给我类似的东西:

$2y$12$19ac9c3924183ab897f61uJr.j9b5cQ8NZS3rqMlNNUft9rEmtT5m

但是现在,我正在用 C/C++ 构建一个程序。我希望用户在程序中输入他们的用户名和密码。

我在互联网上测试了一些“示例”,但所有“河豚 C”都返回了类似的内容:

d00a0a19e5d7155ae6ac6e..........ce1072f5

有人知道我可以在 C/C++ 中找到相同的河豚(或在 PHP 中相同)吗?

4

1 回答 1

0

crypt(3)是一个出现在 glibc 中的函数。也就是说,基于 bcrypt/blowfish 的 crypt 实现(用字符串$2a$ $2x$和标识$2y$)不包含在主线实现中。一些 linux/BSD 发行版通过补丁添加了支持,所以这对你来说可能就足够了。

如果没有,您可以查看OpenBSD 的 crypt 实现的源代码,其中包括对 bcrypt 散列的支持。您可以使用该代码来做您想做的事,而不会带来太多麻烦。

于 2013-03-20T14:32:55.947 回答