所以我有一个运行php的wesbite,它使用诸如此类的行加密所有密码
password_hash($_POST['password'], PASSWORD_BCRYPT, $options)
并按如下所示验证密码
$passwordCheck = password_verify($password, $row['password']);
选项变量为:
$options = ['cost' => 00];
我已经排除了带00的数字,但是当然,还有其他一些不确定的事情对我来说,不给出该数字是否有意义。
这里是问题,我正在运行在Java中运行的SmartFox服务器。我正在使用登录助手(也许我可能不需要,请继续阅读),它尝试比较以纯文本密码发送给我的密码,当然MySql密码使用的是BCrypt。现在,在它引用的文档中,我可以将注册设置为使用Md5,因此我想我必须能够支持这种类型的密码检查。
使用md5http://docs2x.smartfoxserver.com/api-docs/asdoc/com/smartfoxserver/v2/util/PasswordUtil.html
登录助手文档http://docs2x.smartfoxserver.com/DevelopmentBasics/login-assistant
我相信我可以尝试以下方法,但请不要犹豫告诉我从另一个角度进行研究,或者其中一个方法不起作用(因为我不了解哈希/加密/盐/彩虹表等):
我可以在我从中发送密码的c#应用程序中转换密码,并让服务器针对数据库进行检查吗?>
如果预处理器告诉我它是否匹配,我可以使用预处理器来转换密码并检查它,并将密码设置为数据库中的密码吗?>
如果BCrypt在Java上不可用,则让Java执行php脚本
所以我有一个运行php的wesbite,它使用诸如password_hash($ _ POST ['password'],PASSWORD_BCRYPT,$ options)之类的行加密所有密码,并按如下所示验证密码$ passwordCheck = ...
我认为您在进行哈希处理,而不是对密码进行加密,如果我没记错的话。由于PHP中的BCrypt可以同时使用,因此名称很重要。
[避免使用MD5,如今它已被认为已损坏-您具有在线搜索http://www.hashkiller.co.uk/和分布式的暴力破解工具,可能甚至需要几个小时或更短的时间才能破坏新的MD5哈希。
[在Java here中有BCrypt的实现。我在几个应用程序中都使用了它。我什至实现了一个GUI来生成散列并测试匹配的纯文本。 BCryptGenerator