Tôi sẽ khuyên mọi người ngừng sử dụng pwgen - mối quan tâm chính của nó là tạo ra "mật khẩu có thể nhớ được của con người", nhưng nó cho thấy nhiều lỗ hổng khi thực hiện chính xác điều đó. Và sử dụng nó để tạo ra các chuỗi hoàn toàn ngẫu nhiên cũng không hữu ích.
Tôi đã viết một bài viết chi tiết về điều đó rất chủ đề, nhưng về cơ bản, các ý chính của nó là sử dụng diceware chương trình (hoặc, nếu bạn thích xúc xắc, thực tế hệ thống diceware ) hoặc xkcdpass . Để tạo mật khẩu đáng nhớ, tôi thường sử dụng diceware với tệp cấu hình sau:
[diceware]
caps = off
delimiter = "-"
wordlist = en_eff
Ví dụ:
$ diceware
turkey-eligibly-underwire-recite-lifter-wasp
$ diceware
lend-rubdown-cornflake-tint-shawl-ozone
$ diceware
syndrome-ramp-cresting-resolved-flinch-veneering
$ diceware
alto-badass-eclipse-surplus-rudder-quit
Tôi tắt mũ và khoảng trắng vì chúng tạo ra những tiếng động rõ ràng có thể bị kẻ tấn công tận dụng. Dấu -
phân cách là một cái ác nhỏ hơn: tốt hơn là không sử dụng bất kỳ dấu phân cách nào và en_eff
danh sách từ được chế tạo đặc biệt cho mục đích đó. Nhưng tôi thấy việc giao tiếp và chia sẻ mật khẩu dễ dàng hơn khi họ có một số dấu phân cách.
Để tạo một mật khẩu hoàn toàn ngẫu nhiên, tôi sử dụng hàm shell sau:
# secure password generator or, as dkg puts it:
# high-entropy compact printable/transferable string generator
# a password generator would be pwqgen or diceware
pwg() {
ENTROPY=${1:-20} # in bytes
# strip possible newlines if output is wrapped and trailing = signs as they add nothing to the password's entropy
head -c $ENTROPY /dev/random | base64 | tr -d '\n='
echo
}
Tôi đề cập đến điều này bởi vì tôi tin rằng điều quan trọng là ghi nhớ ít mật khẩu và thay vào đó dựa vào trình quản lý mật khẩu để lưu trữ các chuỗi lớn khó đoán. Thông tin chi tiết về lý do đằng sau những lựa chọn đó được giải thích trong bài viết nói trên và người quản lý mật khẩu của tôi xem xét .