我试图制作一款与网站内容相关的游戏,以及用户'帐户将在整个网站上共享多个版本的客户端。
问题是密码需要在PHP
中加密,我需要能够通过Java
进行验证,而我无法找到有关安全的任何信息{ {1}} {(例如cryptos
)并确保PBKDF2
和PHP
之间的生成相同。
我已经看到了有关在Java
上使用PBKDF2
,在PHP
上使用Hmac
但未按照Java& #39; s" SHA-1
"。我现在处理PBKDF2WithHmacSHA1
或PHP
的单独散列处理。
如何设置方法以便能够在Java
上生成salt和hash,将其存储在PHP
中并能够通过Java的散列函数验证密码?
如果可能的话,宁愿坚持使用MySQL
(除非有人可以建议一个更适合交叉兼容性的等价物)。
P.S。不是特别肯定这是否应该在这里或在Crypto SE上。我想,既然我在问特定的语言,我先试试。
答案 0 :(得分:0)
所以,事实证明它并不像我想象的那么复杂。我发现this question表示PHP
相当于Java
的{{1}}是PBKDF2WithHmacSha1
函数和hash_pbkdf2
算法。从那里开始只需将sha1
和salt
从hash
转移到PHP
。以下是它的结果:
1)Java
:对于这个,我只是复制了这个人的PHP
函数并像他一样生成了盐和哈希。
2)pbkdf2
:所有需要发生的事情都是字节码转换的一些变化,它运行得很好。
之后,我需要做的就是修改Java
代码以适应我的服务器/客户端设置(包括辅助会话散列),并计算出更多Java
和更多错误。 salt
通过网络传输进行编码和解码,现在效果很好。
在另一个问题上可以得到更详细的答案。
答案 1 :(得分:0)
尝试考虑使用预构建的用户和密码管理,例如JBoss KeyCloak。它基于OAuth2和OpenID Connect等标准,免费提供密码重置,用户注册和社交登录等功能。它包括Java和JavaScript的连接器。显然connectors for PHP也可用。