Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม Bash

สร้าง Random Passwords ปลอดภัยอย่างรวดเร็วด้วย Bash Script เรียบง่ายนี้

เป็นคราวคราว ต้องหา Passwords ใหม่ บางตัวต้อง Secure กว่าอื่นๆ Cortex บ่อยคราว Blank ตอนสร้าง Login ใหม่ Bash Script สั้นนี้เติมช่องว่าง Full Disclosure: ส่วนใหญ่ของ Script หาเจอที่ไหนสักที่ ทำ Minor Modification

#!/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

ไม่รู้ Detail ทุกอย่างว่าทำงานยังไง แต่ Research และ Experiment เล็กน้อย "เนื้อแท้" ของ Script อยู่บรรทัดเริ่ม do dd อาจเคยเห็น dd Copy Disk ไป Disk อื่น แต่ที่นี่ใช้ Generate One Block Random Characters ด้วย dev/urandom Feedback Messages จาก dd ถูก Strip แล้ว Characters ผ่านไป uuencode ทำ Transform Characters ให้ Printable ทั้งหมด (No Control Characters)

Command uuencode ได้จาก Install Package sharutils

หน้าที่ sed ดูเหมือน Transform เพิ่ม ให้ Letters Mixed Upper/Lower Case สุดท้าย cut ตัด 12 Characters ได้ 12-char Password for Loop รัน 12 รอบ ได้ 12 Passwords

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

Example Output Jumble Characters ค่อนข้างดี สังเกต Non-alphanumeric Characters มีแค่ / และ +

ตอนต้องการ Password ใหม่ มอง Output หาตัวที่ "ดูแล้วชอบ" หาก Password ใช้บ่อย อยากให้จดจำได้

ไม่มีเหตุผลใช้ Literal แบบนี้ แก้ไขเพิ่ม Characters ได้ ตัวผมใช้ 8-char Passwords บางที่ Require Specific Elements เช่น Lowercase อย่างน้อย 1 Uppercase 1 Number 1 Symbol

หาไม่ชอบ Run Script อีกครั้ง Generate 12 ใหม่ อาจ Comment ว่า dev/urandom แค่ Pseudo-random Numbers แต่นี่ทำงานดีกว่าทำเองมาก