GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara membuat kata sandi hash SHA-512 untuk shadow?

Solusi 1:

Ini satu kalimat:

python -c 'import crypt; print crypt.crypt("test", "$6$random_salt")'

Python 3.3+ menyertakan mksalt di crypt, yang membuatnya lebih mudah (dan lebih aman) untuk digunakan:

python3 -c 'import crypt; print(crypt.crypt("test", crypt.mksalt(crypt.METHOD_SHA512)))'

Jika Anda tidak memberikan argumen ke crypt.mksalt (dapat menerima crypt.METHOD_CRYPT , ...MD5 , SHA256 , dan SHA512 ), itu akan menggunakan yang terkuat yang tersedia.

ID hash (angka setelah $ pertama ) terkait dengan metode yang digunakan:

  • 1 -> MD5
  • 2a -> Blowfish (bukan di glibc jalur utama; ditambahkan di beberapa distribusi Linux)
  • 5 -> SHA-256 (sejak glibc 2.7)
  • 6 -> SHA-512 (sejak glibc 2.7)

Saya sarankan Anda mencari tahu apa itu garam dan semacamnya dan sesuai komentar para penjelajah kecil tentang perbedaan antara enkripsi dan hashing.

Pembaruan 1:String yang dihasilkan cocok untuk skrip shadow dan kickstart.
Pembaruan 2:Peringatan . Jika Anda menggunakan Mac, lihat komentar tentang menggunakan ini di python di mac yang sepertinya tidak berfungsi seperti yang diharapkan.

Di macOS Anda harus tidak gunakan versi di atas, karena Python menggunakan versi sistem crypt() yang tidak berperilaku sama dan menggunakan enkripsi DES yang tidak aman. Anda dapat menggunakan satu liner independen platform ini (memerlukan passlib – instal dengan pip3 install passlib ):

python3 -c 'import passlib.hash; print(passlib.hash.sha512_crypt.hash("test"))'

Solusi 2:

Di Debian Anda dapat menggunakan mkpasswd untuk membuat kata sandi dengan algoritme hashing berbeda yang cocok untuk /etc/shadow. Itu termasuk dalam paket whois (menurut apt-file)

mkpasswd -m sha-512
mkpasswd -m md5

untuk mendapatkan daftar algoritme hashing yang tersedia, ketik:

mkpasswd -m help 

HTH

Solusi 3:

Jawaban Terbaik: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)**

Solusi 4:

Berikut adalah kode C singkat untuk menghasilkan kata sandi SHA-512 di berbagai OS jenis Unix.

Berkas: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;
}

untuk mengkompilasi:

/usr/bin/gcc -lcrypt -o passwd-sha512 passwd-sha512.c

penggunaan:

passwd-sha512 <password> <salt (16 chars max)>

Solusi 5:

Perl solusi satu baris untuk menghasilkan kata sandi hash SHA-512:

perl -le 'print crypt "desiredPassword", "\$6\$customSalt\$"'

Bekerja pada RHEL 6


Linux
  1. Cara Membuat Direktori Bersama untuk Semua Pengguna di Linux

  2. Cara Membuat Sudo Mengingat Kata Sandi Lebih Lama

  3. Cara Membuat gambar Windows untuk OpenStack

  1. Bagaimana Cara Mengetik Kata Sandi Untuk Banyak Windows?

  2. Cara membuat sandi yang kuat

  3. Cara Membuat pem Untuk SSL Anda yang Ada

  1. Bagaimana cara membuat sudo meminta kata sandi root?

  2. Buat kata sandi untuk /etc/shadow secara manual

  3. cara membuat arsip multi tar untuk folder besar