加盐和散列密码,Java 和 PHP 兼容性
Salting and hashing passwords, Java and PHP compatibility
我正在尝试制作一款与网站内容相关联的游戏,用户的帐户将在多个客户端版本的网站上共享。
问题是密码需要在PHP
中进行salt-hashed,我需要能够通过Java
进行验证,我找不到任何关于安全cryptos
(如 PBKDF2
)并确保 PHP
和 Java
.
之间的生成相同
我看到了一些关于在 PHP
上使用 PBKDF2
或 Hmac
与 SHA-1
的信息,但没有按照 Java的“PBKDF2WithHmacSHA1
”。我现在掌握了 PHP
或 Java
的单个散列。
如何设置能够在 PHP
上生成盐和散列的方法,将其存储在 MySQL
中并能够通过 Java 验证密码哈希函数?
如果可能的话,我更愿意坚持使用 PBKDF2
(除非有人可以建议一个对交叉兼容性更好的等效项)。
P.S。不确定这是否应该出现在这里或 Crypto SE 上。我想,既然我问的是特定语言,我会先在这里试试。
所以,事实证明它并不像我想象的那么复杂。我发现 this question 说 PHP
等同于 Java
的 PBKDF2WithHmacSha1
是具有 sha1
算法的 hash_pbkdf2
函数。从那里开始,只需将 salt
和 hash
从 PHP
转移到 Java
。结局是这样的:
1) PHP
:对于这个,我只是复制了那个人的 pbkdf2
函数并像他那样生成了 salt 和 hash。
2) Java
:所有需要发生的只是字节码转换中的一点变化,它工作得很好。
在那之后,我需要做的就是修改 Java
代码以适应我的 server/client 设置(包括辅助会话哈希),并解决更多 salt
和hash
通过网络传输编码解码,完美运行
另一个问题的答案稍微详细一些。
尝试考虑使用像 JBoss KeyCloak. It is based on standards like OAuth2 and OpenID Connect, and things like password reset, user registration and social login come for free. It includes connectors for Java and JavaScript. Apparently connectors for PHP 这样的预建用户和密码管理。
我正在尝试制作一款与网站内容相关联的游戏,用户的帐户将在多个客户端版本的网站上共享。
问题是密码需要在PHP
中进行salt-hashed,我需要能够通过Java
进行验证,我找不到任何关于安全cryptos
(如 PBKDF2
)并确保 PHP
和 Java
.
我看到了一些关于在 PHP
上使用 PBKDF2
或 Hmac
与 SHA-1
的信息,但没有按照 Java的“PBKDF2WithHmacSHA1
”。我现在掌握了 PHP
或 Java
的单个散列。
如何设置能够在 PHP
上生成盐和散列的方法,将其存储在 MySQL
中并能够通过 Java 验证密码哈希函数?
如果可能的话,我更愿意坚持使用 PBKDF2
(除非有人可以建议一个对交叉兼容性更好的等效项)。
P.S。不确定这是否应该出现在这里或 Crypto SE 上。我想,既然我问的是特定语言,我会先在这里试试。
所以,事实证明它并不像我想象的那么复杂。我发现 this question 说 PHP
等同于 Java
的 PBKDF2WithHmacSha1
是具有 sha1
算法的 hash_pbkdf2
函数。从那里开始,只需将 salt
和 hash
从 PHP
转移到 Java
。结局是这样的:
1) PHP
:对于这个,我只是复制了那个人的 pbkdf2
函数并像他那样生成了 salt 和 hash。
2) Java
:所有需要发生的只是字节码转换中的一点变化,它工作得很好。
在那之后,我需要做的就是修改 Java
代码以适应我的 server/client 设置(包括辅助会话哈希),并解决更多 salt
和hash
通过网络传输编码解码,完美运行
另一个问题的答案稍微详细一些。
尝试考虑使用像 JBoss KeyCloak. It is based on standards like OAuth2 and OpenID Connect, and things like password reset, user registration and social login come for free. It includes connectors for Java and JavaScript. Apparently connectors for PHP 这样的预建用户和密码管理。