【发布时间】:2014-11-21 23:51:51
【问题描述】:
所以我有一个运行 php 的 wesbite,它使用一行加密所有密码,例如
password_hash($_POST['password'], PASSWORD_BCRYPT, $options)
并按如下方式验证密码
$passwordCheck = password_verify($password, $row['password']);
选项变量是:
$options = ['cost' => 00];
我已经排除了带有 00 的数字,但当然还有其他事情不确定是否与我不给出该数字有关。
问题来了, 我正在运行一个在 java 中运行的 SmartFox 服务器。我正在使用登录助手(也许我可能不需要,请继续阅读)并尝试将我发送给它的密码作为纯文本密码进行比较,当然 MySql 密码使用的是 BCrypt。现在在它引用的文档中,我可以将注册设置为使用 Md5,所以我认为我必须能够支持这种类型的密码检查。
使用 md5 http://docs2x.smartfoxserver.com/api-docs/asdoc/com/smartfoxserver/v2/util/PasswordUtil.html
登录助手文档 http://docs2x.smartfoxserver.com/DevelopmentBasics/login-assistant
我相信我可以尝试以下方法,但请不要犹豫,告诉我从另一个角度解决这个问题,或者其中一个不起作用(因为我不了解散列/加密/盐/彩虹表等) :
我可以在我发送密码的 c# 应用程序中转换密码,并让服务器根据数据库进行检查
如果预处理器告诉我它匹配,我可以使用预处理器来转换密码并检查它并将密码设置为数据库中的密码
如果 BCrypt 在 java 上不可用,则让 java 执行 php 脚本
【问题讨论】: