Ubuntu 10.04 使用的密码是如何生成的?我知道他们使用 SHA 512 作为哈希算法,但我认为其中进行了某种加盐处理。我需要自己生成这样的密码。我该怎么做?有命令行工具吗?
答案1
编写一个 python/perl/whatever 脚本并调用地穴(3)功能。
The glibc2 version of this function supports additional encryption algorithms.
If salt is a character string starting with the characters "$id$" followed by
a string terminated by "$":
$id$salt$encrypted
then instead of using the DES machine, id identifies the encryption method
used and this then determines how the rest of the password string is
interpreted. The following values of id are supported:
ID | Method
---------------------------------------------------------
1 | MD5
2a | Blowfish (not in mainline glibc; added in some
| Linux distributions)
5 | SHA-256 (since glibc 2.7)
6 | SHA-512 (since glibc 2.7)
So $5$salt$encrypted is an SHA-256 encoded password and $6$salt$encrypted is
an SHA-512 encoded one.
"salt" stands for the up to 16 characters following "$id$" in the salt. The
encrypted part of the password string is the actual computed password. The
size of this string is fixed:
MD5 | 22 characters
SHA-256 | 43 characters
SHA-512 | 86 characters
The characters in "salt" and "encrypted" are drawn from the set [a-zA-Z0-9./].
In the MD5 and SHA implementations the entire key is significant (instead of
only the first 8 bytes in DES).
在默认使用 sha-512 或其他算法的系统中,您仍然可以在影子文件中使用 md5 密码。命令如下:密码检查器可用于生成 MD5 哈希。
您可以使用 mkpasswd,奇怪的是它是 Debian/Ubuntu 上 whois 包的一部分。 mkpasswd -m sha-512
(发现这里)