Řešení 1:
Zde je jeden řádek:
python -c 'import crypt; print crypt.crypt("test", "$6$random_salt")'
Python 3.3+ obsahuje mksalt
in crypt, díky čemuž je použití mnohem jednodušší (a bezpečnější):
python3 -c 'import crypt; print(crypt.crypt("test", crypt.mksalt(crypt.METHOD_SHA512)))'
Pokud nezadáte argument pro crypt.mksalt
(může přijmout crypt.METHOD_CRYPT
, ...MD5
, SHA256
a SHA512
), použije nejsilnější dostupné.
ID hashe (číslo za prvním $
) souvisí s použitou metodou:
- 1 -> MD5
- 2a -> Blowfish (není v hlavní řadě glibc; přidáno v některých distribucích Linuxu)
- 5 -> SHA-256 (od glibc 2.7)
- 6 -> SHA-512 (od glibc 2.7)
Doporučil bych, abyste se podívali, co jsou to salty a podobně, a podle smallclamgerů se vyjádřili k rozdílu mezi šifrováním a hašováním.
Aktualizace 1:Vytvořený řetězec je vhodný pro shadow a kickstart skripty.
Aktualizace 2:Upozornění . Pokud používáte Mac, přečtěte si komentář o použití tohoto v pythonu na Macu, kde se zdá, že nefunguje podle očekávání.
V systému macOS byste neměli použijte výše uvedené verze, protože Python používá systémovou verzi crypt()
který se nechová stejně a používá nezabezpečené DES šifrování. Můžete použít tuto platformu nezávislou jednu vložku (vyžaduje passlib – instalace s pip3 install passlib
):
python3 -c 'import passlib.hash; print(passlib.hash.sha512_crypt.hash("test"))'
Řešení 2:
V Debianu můžete použít mkpasswd vytvářet hesla s různými hashovacími algoritmy vhodnými pro /etc/shadow. Je součástí balíčku whois (podle apt-file)
mkpasswd -m sha-512
mkpasswd -m md5
Chcete-li získat seznam dostupných algoritmů hašování, zadejte:
mkpasswd -m help
HTH
Řešení 3:
Nejlepší odpověď:grub-crypt
Usage: grub-crypt [OPTION]...
Encrypt a password.
-h, --helpPrint this message and exit
-v, --version Print the version information and exit
--md5 Use MD5 to encrypt the password
--sha-256 Use SHA-256 to encrypt the password
**--sha-512 Use SHA-512 to encrypt the password (default)**
Řešení 4:
Zde je krátký kód C pro vygenerování hesla SHA-512 na různých operačních systémech typu Unix.
Soubor:passwd-sha512.c
#define _XOPEN_SOURCE
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
int main(int argc, char *argv[]) {
if ( argc < 3 || (int) strlen(argv[2]) > 16 ) {
printf("usage: %s password salt\n", argv[0]);
printf("--salt must not larger than 16 characters\n");
return;
}
char salt[21];
sprintf(salt, "$6$%s$", argv[2]);
printf("%s\n", crypt((char*) argv[1], (char*) salt));
return;
}
zkompilovat:
/usr/bin/gcc -lcrypt -o passwd-sha512 passwd-sha512.c
použití:
passwd-sha512 <password> <salt (16 chars max)>
Řešení 5:
Perl jednolinkové řešení pro generování hašovaného hesla SHA-512:
perl -le 'print crypt "desiredPassword", "\$6\$customSalt\$"'
Pracoval na RHEL 6