Computer >> Máy Tính >  >> Lập trình >> Lập trình BASH

Tạo mật khẩu ngẫu nhiên với tập lệnh Bash này

Định kỳ, tôi cần đưa ra các mật khẩu mới, một số mật khẩu trong số đó cần được bảo mật hơn những mật khẩu khác. Tâm trí của tôi thường dường như trống rỗng khi tôi phải tạo một thông tin đăng nhập mới và tập lệnh Bash ngắn này lấp đầy khoảng trống đó. Tiết lộ đầy đủ:Tôi đã tìm thấy hầu hết tập lệnh này được đăng ở đâu đó và đã thực hiện một sửa đổi nhỏ đối với nó.

#!/usr/bin/env sh
echo 'Generating 12-character passwords'
for ((n=0;n<12;n++))
do dd if=/dev/urandom count=1 2> /dev/null | uuencode -m - | sed -ne 2p | cut -c-12
done

Tôi không biết tất cả các chi tiết về cách hoạt động của nó, nhưng tôi đã thực hiện một chút nghiên cứu và thử nghiệm. "Thịt" của tập lệnh nằm ở dòng bắt đầu bằng do dd . Bạn có thể đã thấy đ được sử dụng để sao chép đĩa này sang đĩa khác, nhưng trong trường hợp này, nó được sử dụng để tạo một khối ký tự ngẫu nhiên với dev / urandom . Tin nhắn phản hồi từ dd được loại bỏ và sau đó các ký tự được chuyển sang uuencode , nhiệm vụ của nó là biến đổi các ký tự để tất cả đều có thể in được (tức là không có ký tự điều khiển).

Bạn có thể lấy lệnh uuencode bằng cách cài đặt gói sharutils.

Công việc của sed dường như là một số chuyển đổi nữa để các chữ cái được trộn lẫn giữa chữ hoa và chữ thường. Cuối cùng, cắt cắt bỏ 12 ký tự để kết thúc bằng mật khẩu 12 ký tự. for vòng lặp chạy 12 lần, vì vậy bạn nhận được 12 mật khẩu.

Generating 12-character passwords 
8WMKHeXeYsND
X+V3jWOuBWwp
fSk6inI+LfYP
hIPndcBOSh7m
bb/w9mx8OlHv
hdIOibUaMt3Y
wl//CobIG5bR
dih0qQQMJiXw
BIN2QfNA4jCe
DF0c8Auz1qL4
RM8MMq/D8C8H
rZIG5hbghcMy

Đầu ra ví dụ này cho thấy một mớ ký tự khá tốt. Một điều cần lưu ý là các ký tự không phải chữ và số duy nhất là / + .

Khi tôi cần một mật khẩu mới, tôi xem đầu ra này để tìm một mật khẩu "hấp dẫn" tôi. Nếu đó là mật khẩu tôi sẽ sử dụng thường xuyên, tôi muốn nó là mật khẩu mà tôi nghĩ rằng cuối cùng tôi có thể nhớ được.

Không có lý do gì để sử dụng chúng theo nghĩa đen; bạn có thể thêm hoặc sửa đổi các ký tự như bạn muốn. Tôi chủ yếu sử dụng mật khẩu tám ký tự. Một số nơi yêu cầu mật khẩu phải có các yếu tố cụ thể, chẳng hạn như ít nhất một chữ thường, một chữ hoa, một số và một ký hiệu.

Nếu tôi không thích bất kỳ mật khẩu nào, tôi chạy lại tập lệnh để tạo một mật khẩu khác. 12. Ai đó có thể nhận xét rằng dev / urandom chỉ tạo các số giả ngẫu nhiên, nhưng tập lệnh này chắc chắn thực hiện công việc tốt hơn nhiều so với việc tôi có thể tự làm.