【问题标题】:Blowfish php in C?C语言中的河豚php?
【发布时间】:2013-03-08 07:14:27
【问题描述】:

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

$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 中相同)吗?

【问题讨论】:

  • PHP源码怎么样?
  • PHP 代码对我来说很好(我尝试运行它,它给了我相同的结果),我认为他的问题与他无法从 PHP 到 C++ 得到相同的结果有关
  • @jsn.crdnl 对。 PHP 又是用什么语言编写的? ;-)
  • 对不起,我没说一句话^^你是建议进入PHP的源代码,提取crypt using blowfish函数并在他的C/C++应用程序中重新使用它吗?
  • @DaveRandom 我不明白。你想说什么?

标签: php c++ c encryption blowfish


【解决方案1】:

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

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

【讨论】:

  • 感谢您的回答,但我在 DaveRandom 消息的 PHP 源代码中找到了我的快乐。非常感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-01-04
  • 2016-02-29
  • 1970-01-01
  • 2012-08-23
  • 1970-01-01
  • 2019-02-01
  • 2012-01-27
相关资源
最近更新 更多