有些人可以在我的网站上注册自己。对于密码,我使用如下:
$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发行版通过补丁增加了支持,所以这对你来说可能足够了。
如果没有,您可以查看OpenBSD的crypt实现的源代码,它将包括对bcrypt哈希的支持。您可以使用该代码做您想做的事情,而不需要太多的麻烦。