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

$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中找到相同的河豚)吗?

最佳答案

crypt(3)是glibc中显示的功能。也就是说,基于bcrypt / blowfish的crypt实现(用字符串$2a$ $2x$$2y$标识)不包括在主线实现中。但是,某些linux / BSD发行版通过补丁添加了对它的支持,因此这对您来说足够了。

如果没有,您可以签出the source code以获得OpenBSD的crypt实现,其中包括对bcrypt哈希的支持。您可以使用该代码轻松完成自己想做的事情。

08-25 00:43