Anda dapat (ab) menggunakan htpasswd
dari paket apache-utils , asalkan Anda memiliki versi 2.4 atau lebih tinggi.
htpasswd -bnBC 10 "" password | tr -d ':\n'
-b
mengambil kata sandi dari argumen perintah kedua
-n
mencetak hash ke stdout alih-alih menuliskannya ke file yang
-B
memerintahkan untuk menggunakan bcrypt
-C 10
menetapkan biaya bcrypt ke 10
Perintah telanjang htpasswd menampilkan dalam format <name>: <hash> diikuti oleh dua baris baru. Karenanya string kosong untuk nama dan tr
pengupasan usus besar dan baris baru.
Perintah menampilkan bcrypt dengan $2y$
awalan, yang mungkin menjadi masalah untuk beberapa penggunaan, tetapi dapat dengan mudah diperbaiki oleh yang lain sed
karena varian OpenBSD yang digunakan $2a$
kompatibel dengan varian tetap menggunakan crypt_blowfish $2y$
.
htpasswd -bnBC 10 "" password | tr -d ':\n' | sed 's/$2y/$2a/'
Tautan ke halaman manual htpasswd: https://httpd.apache.org/docs/2.4/programs/htpasswd.html
Detail tentang varian bcrypt: /programming//a/36225192/6732096
Anda dapat menggunakan pustaka Python. Pada sistem Fedora saya, saya lakukan:
(sudo hanya untuk menghindari pemborosan ruang untuk cache dnf pengguna) dan dari hasilnya dapat melihat ada paket Python2 dan Python3:
Instal versi Python2 dan daftarkan file dalam paket:
Ini menunjukkan ada file
/usr/lib64/python2.7/site-packages/bcrypt/__init__.py
sehingga saya bisa mendapatkan dokumentasiIni menunjukkan saya cukup untuk menulis perintah berikut yang akan hash string
"password"
:Untuk versi
bcrypt
penggunaan yang lebih baru,rounds=
alih-alihlog_rounds=
.sumber
sudo
dijalankandnf search
, itu berfungsi dengan baik sebagai pengguna standar.log_rounds
tampaknya telah berubah untukrounds
membuatnyapython -c 'import bcrypt; print(bcrypt.hashpw("password", bcrypt.gensalt(rounds=10)))'
.Tambahan untuk
@Disassembler
jawaban:ps
)15
adalah keseimbangan yang baik untuk kecepatan pembuatan kata sandi / kompleksitasSkrip pembungkus untuk
htpasswd
&bcrypt
:sumber
root
pengguna, sebaiknya buat tautan simbolik/dev/null
.