我有一堆MD5哈希密码,我想将其转换为隐藏式MD5。
如果我有明文,我可以轻松创建两者:
% echo -n 'testpass' | md5sum
179ad45c6ce2cb97cf1029e212046e81 -
% echo -n 'testpass' | openssl passwd -1 -stdin -salt ''
$1$$JN/baUhJCUwYKagp48tsP0
但如何将179ad45c6ce2cb97cf1029e212046e81
转换为JN/baUhJCUwYKagp48tsP0
?
答案 0 :(得分:2)
第一个字符串是十六进制,第二个字符串是base64。
MD5哈希是一个128位数字 ..它可以选择打印的方式可以是十六进制字符串或base64编码字符串 - 两者都只是128位的表示号。
但是ms5sum
和openssl passwd
不会加密将密码哈希到相同的128哈希值,因此相同的密码不会产生相同的128位数,所以在您的示例一个密码哈希不会转换为另一个
答案 1 :(得分:1)
您说您有一些要转换为“crypt-style”MD5的MD5哈希密码。如果是这种情况,那么您可能希望生成可用于对Apache用户进行身份验证的文件。不幸的是,您可能无法从普通的MD5哈希值中执行此操作。
Apache的MD5-Crypt哈希算法不仅仅是密码的MD5总和。 -1变体也不是。这两个附加内容或以其他方式修改输入密码,不包括salt以提供结果哈希。如果您确实使用您描述的方法将MD5哈希值汇总到md5sum,则生成的哈希不能反转为您可以哈希到htpasswd兼容哈希的任何内容。
抱歉