10 cách t o m t kh u ng u nhiên

trong Linux t

dòng l nh

M t trong nh ng đi u tuy t v i c a Linux là b n có th t ệ ờ ủ ể ự ữ ộ ề ạ ạ mình t o

ậ ra hàng trăm th khác nhau, ngay c vi c đ n gi n nh t o m t ả ệ ơ ư ạ ứ ả

kh u ng u nhiên cũng có th đ c th c hi n b i hàng ch c l nh. ể ượ ẫ ẩ ệ ở ụ ệ ự

Sau đây chúng tôi xin gi i thi u t i các b n 10 l nh ph bi n nh t th ớ ệ ớ ổ ế ệ ạ ấ ườ ng

s d ng đ t o m t kh u này. ử ụ ể ạ ậ ẩ

Trong quá trình s d ng Linux, v n đ b o m t là đi u quan tâm hàng ử ụ ề ả ề ấ ậ

t c các l nh t đ u. Chúng tôi đã s u t m t ầ ư ầ ấ ả ệ ừ Command-Line Fu và thử

ạ ộ nghi m trên máy tính c a mình đ đ m b o r ng chúng đ u ho t đ ng ể ả ả ằ ủ ề ệ

t ố ấ t. N u mu n tr i nghi m, b n cũng có th ch y các l nh mình tìm th y ể ạ ế ệ ệ ả ạ ố

trên Windows v i cài đ t ặ Cygwin. ớ

ộ [h=2]Cách t o m t m t kh u Random[/h] Trong b t kỳ l nh t o m t ệ ạ ậ ẩ ấ ạ ộ

password random đ c trình bày, b n có th ho c là ch nh s a chúng đ ượ ử ể ạ ặ ỉ ể

thay đ i đ dài c a m t kh u, ho c ch s d ng ký t ỉ ử ụ ổ ộ ủ ậ ẩ ặ ự ế X đ u tiên n u ầ

ạ ử ụ không mu n m t m t kh u quá dài. Chúng tôi khuy n cáo b n s d ng ế ậ ẩ ố ộ

trình qu n lý password LastPass đ không ph i lo v n đ ghi nh chúng. ả ể ề ả ấ ớ

Ph ng pháp đ u tiên là s d ng thu t toán mã hóa SHA, ch y thông ươ ầ ử ụ ậ ạ

qua base64 và đ u ra là chu i 32 ký t ầ ỗ . ự

date +%s | sha256sum | base64 | head -c 32 ; echo

Ph ng pháp th 2 c xây d ng trong tính năng ươ ứ đ ượ ự /dev/urandom, các bộ

ng đ l c ch l c duy nh t nh ng ký t ọ ỉ ọ ữ ấ th ự ườ ượ ế c dùng cho m t kh u. K t ậ ẩ

qu đ u ra là 32 ký t ả ầ . ự

< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-32};echo;

Ph ng pháp th 3 ươ ể ạ ứ s d ng tính năng rand c a openssl. Có th b n ử ụ ủ

không cài đ t nó trên h th ng c a mình, nh ng hãy th n u có th . ể ủ ệ ố ử ế ư ặ

openssl rand -base64 32

Ph ng pháp th 4 ươ ứ này ho t đ ng nh m t urandom khác, nh ng nó làm ư ộ ạ ộ ư

đi u ng ề c l ượ ạ i. Kh năng Bash r t m nh m : ẽ ả ấ ạ

tr -cd '[:alnum:]' < /dev/urandom | fold -w30 | head -n1

Ph ng pháp 5 ươ ỗ ằ là m t ví d khác v cách s d ng b l c chu i b ng ử ụ ộ ọ ụ ề ộ

dòng l nh. K t qu đ u ra có th đ c in t m t file. Trong tr ả ầ ể ượ ệ ế ừ ộ ườ ợ ng h p

này là tính năng urandom:

strings /dev/urandom | grep -o ':alnum:' | head -n 30 | tr -d '\n'; echo

Ph ng pháp 6 s d ng m t phiên b n đ n gi n c a urandom: ươ ả ủ ử ụ ả ơ ộ

< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c6

Ph ng pháp 7 ươ qu n lý vi c s d ng l nh dd r t m nh m : ẽ ệ ử ụ ệ ả ấ ạ

dd if=/dev/urandom bs=1 count=32 2>/dev/null | base64 -w 0 | rev | cut -b 2-

| rev

Ph ng pháp 8 giúp b n th m chí có th t o m t m t kh u ng u nhiên ươ ể ạ ạ ậ ậ ẩ ẫ ộ

left-hand. Sau đó b n có th nh p m t kh u này b ng tay trái: ậ ể ạ ằ ẩ ậ

%qwertQWERTasdfgASDFGzxcvbZXCVB' | head -c8; echo ""

Ph ng pháp th 9: ươ ể ử ụ ứ ch c n ch y l nh này m t l n, b n có th s d ng ạ ệ ộ ầ ỉ ầ ạ

randpw b t c khi nào b n mu n t o password random. Ngoài ra b n cũng ố ạ ấ ứ ạ ạ

có th đ t trong t p tin ~/.bashrc. ể ặ ậ

randpw(){ < /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-16};echo;}

ng t đ th c thi b t kỳ ch c năng nào B n có th s d ng cú pháp t ể ử ụ ạ ươ ự ể ự ứ ấ

{}. b ng cách thay th trong ằ ế

Cu i cùng, đây cũng là cách d dàng nh t dòng ấ đ t o m t kh u t ể ạ ẩ ừ ố ễ ậ

l nh. Nó ho t đ ng trong c Linux, Windows v i Cygwin và có th c ệ ạ ộ ể ả ả ớ

Mac OS X. M c dù đây không ph i là s random nh các l a ch n trên, ư ự ự ặ ả ọ

nh ng cũng đ cho b n th : ử ủ ư ạ

date | md5sum

Có nhi u cách đ b n t o ra các m t kh u ng u nhiên t ể ạ ạ ề ẩ ẫ ậ ừ dòng l nh trong ệ

Linux, ví d nh ụ ư mkpasswd, sau đó b n có th gán chúng cho các tài ể ạ

kho n khác. ả