【发布时间】:2013-07-26 18:23:13
【问题描述】:
我正在设置一个 Jetty 应用程序,该应用程序需要在 realm.properties 文件中声明帐户凭据。有使用 org.mortbay.jetty.security.Password 类以各种形式生成凭据的说明,包括 MD5 哈希。在示例 realm.properties 中,该文件指出:
This entry is for digest auth. The credential is a MD5 hash of username:realmname:password
我的问题是,有人知道使用的精确格式吗?我需要让我的用户向我发送他们帐户的密码哈希,而不需要他们同时安装 java 和 jetty。我想它应该像找出“用户名”和“密码”的正确组合以管道到 unix md5sum 实用程序一样简单。
我查看了Password 类的源代码,它似乎只是自己散列密码。鉴于java字符串不是ascii,也许我需要通过一些unix实用程序来传输纯文本? echo plaintext_passwd | some_format_translator | md5sum 之类的东西?
对于完整的功劳,给我一个 unix 命令,它将输出与 java -cp ./jetty-6.1.21.jar:./jetty-util-6.1.21.jar org.mortbay.jetty.security.Password username password 的 MD5 输出匹配的“用户名”和“密码”的哈希值 - 即 5f4dcc3b5aa765d61d8327deb882cf99
编辑:需要明确的是,可以假设我的用户可以访问库存充足的 Linux 机器。他们可能没有运行 java,而且肯定没有安装 Jetty。
【问题讨论】:
-
您考虑过使用在线 md5 编码器吗?你不会编程任何东西。用户可以自行完成。当然你需要考虑安全风险。
-
链接?我认为这里的安全影响很小——即使网站永远存储它,他们也不知道我在用它做什么,也无法访问应用程序。棘手的部分是确定格式是什么。我还没有找到与 Jetty 输出匹配的 md5sum 实用程序的输入:-/