在java中生成密码哈希,如openssl passwd -1

发布于 2024-08-18 05:13:22 字数 222 浏览 4 评论 0原文

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

厌倦 2024-08-25 05:13:22

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 scheme
Gt24/BL6 - 8 byte salt
$ - delimiter
E4ZsrluohHFxtcdqCH7jo. - hash

so it looks like Jasypt's BasicPasswordEncryptor might be what you want-

暖伴 2024-08-25 05:13:22

也许是这样的?

MessageDigest md = null;
md = MessageDigest.getInstance("SHA");
md.update(pPassword.getBytes("UTF-8"));
byte raw[] = md.digest();
String hash = BASE64Encoder.encodeBuffer(raw);

Java BASE64Encoder 源代码可以在网上找到。

Perhaps something like this?

MessageDigest md = null;
md = MessageDigest.getInstance("SHA");
md.update(pPassword.getBytes("UTF-8"));
byte raw[] = md.digest();
String hash = BASE64Encoder.encodeBuffer(raw);

The Java BASE64Encoder source can be found on the net.

月朦胧 2024-08-25 05:13:22

您可以找到 C 语言版本的源代码 这里。将其转换为纯 Java 应该很简单。

You can find source code for the C language version here. It should be straightforward to convert it to pure Java.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文