如何为 Ubuntu 10.04 生成与 /etc/shadow 兼容的密码?

t6d*_*t6d 10 ubuntu user-management passwd shadow

Ubuntu 10.04 使用的密码是如何生成的?我知道他们使用 SHA 512 作为散列算法,但我认为已经完成了某种加盐。我需要自己生成这样的密码。我怎样才能做到这一点?有没有一个命令行工具?

Zor*_*che 14

编写一个快速的 python/perl/任何脚本并调用crypt(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).
Run Code Online (Sandbox Code Playgroud)

您仍然可以在默认为 sha-512 或其他内容的系统中的影子文件中使用 md5 密码。类似工具makepasswd的命令可用于生成 MD5 哈希。

您可以使用 mkpasswd,奇怪的是它是 Debian/Ubuntu 上 whois 软件包的一部分。 mkpasswd -m sha-512. (在这里找到)