在java中生成密码哈希,如openssl passwd -1
Java中是否有一种简单的方法来生成与“openssl passwd -1”生成的形式相同的密码哈希值。
示例:
# openssl passwd -1 test
$1$Gt24/BL6$E4ZsrluohHFxtcdqCH7jo.
我正在寻找一个不调用 openssl 或任何其他外部程序的纯 java 解决方案。
谢谢 拉斐尔
Is there an easy way in Java to generate password hashes in same form as generated by "openssl passwd -1".
Example:
# openssl passwd -1 test
$1$Gt24/BL6$E4ZsrluohHFxtcdqCH7jo.
I'm looking for a pure java solution that does not call openssl or any other external program.
Thanks
Raffael
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
openssl 文档 将
-1
选项描述为:“使用基于MD5的BSD密码算法1。”Jasypt 是一个 java cryptogrqphy 库,jBCrypt。 Jasypt 稍微复杂一些,但更可配置。
我对加密不太了解,但我的猜测是 openssl 生成的密码分解为:
$1$
- 指定这是使用 MD5 方案生成的Gt24/BL6
- 8 字节盐$
- 分隔符E4ZsrluohHFxtcdqCH7jo.
- 散列,因此看起来像 Jasypt 的 BasicPasswordEncryptor 可能就是你想要的 -
The openssl docs describe the
-1
option as: "Use the MD5 based BSD password algorithm 1."Jasypt is a java cryptogrqphy library, as is jBCrypt. Jasypt is slightly more complicated, but more configurable.
I don't know that much about crypto, but my guess is that the password generated by openssl breaks down as:
$1$
- specifies that this was generated using the MD5 schemeGt24/BL6
- 8 byte salt$
- delimiterE4ZsrluohHFxtcdqCH7jo.
- hashso it looks like Jasypt's BasicPasswordEncryptor might be what you want-
也许是这样的?
Java BASE64Encoder 源代码可以在网上找到。
Perhaps something like this?
The Java BASE64Encoder source can be found on the net.
您可以找到 C 语言版本的源代码 这里。将其转换为纯 Java 应该很简单。
You can find source code for the C language version here. It should be straightforward to convert it to pure Java.