Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม BASH

สร้างรหัสผ่านแบบสุ่มด้วยสคริปต์ทุบตีนี้

ฉันต้องคิดรหัสผ่านใหม่เป็นระยะ ซึ่งบางรหัสต้องมีความปลอดภัยมากกว่ารหัสผ่านอื่น จิตใจของฉันมักจะว่างเปล่าเมื่อฉันต้องสร้างการเข้าสู่ระบบใหม่และสคริปต์ทุบตีสั้น ๆ นี้จะเติมช่องว่างนั้น การเปิดเผยโดยสมบูรณ์:ฉันพบว่าสคริปต์นี้ส่วนใหญ่โพสต์ไว้ที่ใดที่หนึ่งและได้ทำการแก้ไขเล็กน้อย

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

ฉันไม่รู้รายละเอียดทั้งหมดเกี่ยวกับวิธีการทำงาน แต่ฉันได้ทำการวิจัยและทดลองเล็กน้อย "เนื้อ" ของสคริปต์อยู่ในบรรทัดที่ขึ้นต้นด้วย do dd . คุณอาจเคยเห็น dd ใช้เพื่อคัดลอกดิสก์หนึ่งไปยังอีกดิสก์หนึ่ง แต่ในกรณีนี้ ใช้เพื่อสร้างบล็อกของอักขระสุ่มหนึ่งบล็อกด้วย dev/urandom . ข้อความตอบรับจาก dd ถูกถอดออก จากนั้นอักขระจะถูกส่งต่อไปยัง uuencode ซึ่งมีหน้าที่ในการแปลงอักขระเพื่อให้สามารถพิมพ์ได้ทั้งหมด (เช่น ไม่มีอักขระควบคุม)

สามารถรับคำสั่ง uuencode ได้โดยการติดตั้งแพ็คเกจ sharutils

งานของ เส็ด ดูเหมือนว่าจะมีการแปลงเพิ่มเติมเพื่อให้ตัวอักษรเป็นตัวพิมพ์ใหญ่และตัวพิมพ์เล็กผสมกัน สุดท้าย ตัด แบ่งอักขระออก 12 ตัวเพื่อลงท้ายด้วยรหัสผ่าน 12 ตัว สำหรับ วนซ้ำทำงาน 12 ครั้ง ดังนั้นคุณจะได้รับ 12 รหัสผ่าน

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

เอาต์พุตตัวอย่างนี้แสดงความสับสนของอักขระที่ค่อนข้างดี สิ่งหนึ่งที่ควรสังเกตคือ อักขระที่ไม่ใช่ตัวอักษรและตัวเลขเท่านั้นคือ / และ + .

เมื่อฉันต้องการรหัสผ่านใหม่ ฉันจะตรวจสอบผลลัพธ์นี้เพื่อหารหัสผ่านที่ "ดึงดูด" ให้ฉัน หากเป็นรหัสผ่านที่ฉันจะใช้บ่อยๆ ฉันขอเป็นรหัสผ่านที่ฉันคิดว่าจำได้ในที่สุด

ไม่มีเหตุผลที่จะใช้สิ่งเหล่านี้อย่างแท้จริง คุณสามารถเพิ่มหรือแก้ไขอักขระได้ตามที่คุณต้องการ ส่วนใหญ่ฉันใช้รหัสผ่านแปดตัว บางสถานที่ต้องใช้รหัสผ่านเพื่อให้มีองค์ประกอบเฉพาะ เช่น ตัวพิมพ์เล็กอย่างน้อยหนึ่งตัว ตัวอักษรตัวพิมพ์ใหญ่หนึ่งตัว ตัวเลขหนึ่งตัว และสัญลักษณ์หนึ่งตัว

ถ้าฉันไม่ชอบรหัสผ่านใด ๆ ฉันจะเรียกใช้สคริปต์อีกครั้งเพื่อสร้างรหัสผ่านใหม่อีก 12 อัน อาจมีคนแสดงความคิดเห็นว่า dev/urandom สร้างเฉพาะตัวเลขสุ่มหลอก แต่สคริปต์นี้ทำงานได้ดีกว่าที่ฉันทำเองได้อย่างแน่นอน