有些人可以在我的网站上注册。对于密码,我使用了:
$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哈希的支持。您可以使用该代码轻松完成自己想做的事情。