GNU/Linux >> Znalost Linux >  >> Linux

Jak vytvořit heslo hash SHA-512 pro stín?

Ř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


Linux
  1. Jak vytvořit sdílený adresář pro všechny uživatele v Linuxu

  2. Jak udělat sudo zapamatovat si heslo déle

  3. Jak vytvořit bitovou kopii Windows pro OpenStack

  1. Jak ručně vytvořit uživatelský účet Linux

  2. Jak vytvořit smyčku For s měnitelným počtem iterací?

  3. Jak zadat heslo pro více Windows?

  1. Jak vytvořit pem pro váš stávající SSL

  2. Ručně vygenerujte heslo pro /etc/shadow

  3. jak vytvořit multi tar archivy pro obrovskou složku