ความแข็งแกร่งของรหัสผ่าน

ไฟล์:KeePass random password.png|thumb|250px|
ลูกเล่นของหน้าสร้างรหัสผ่านแบบสุ่มของโปรแกรมจัดการรหัสผ่าน KeePass
การเพิ่มกลุ่มตัวอักษรจะเพิ่มความแข็งแกร่งของรหัสผ่านที่สร้างเพียงเล็กน้อย เทียบกับการเพิ่มจำนวนอักษรที่เพิ่มความเข้มแข็งยิ่งกว่า 
ความแข็งแกร่งของรหัสผ่าน หรือ ความเข้มแข็งของรหัสผ่าน เป็นค่าวัดประสิทธิผลของnowrap |รหัสผ่านในการต้านทานการคาดเดาหรือการโจมตีด้วยกำลัง 
โดยทั่วไปแล้วจะประเมินจากจำนวนครั้งโดยเฉลี่ยที่ผู้โจมตีซึ่งไม่มีความรู้เกี่ยวกับรหัสผ่านโดยตรง จะต้องลองเพื่อให้เดารหัสผ่านได้อย่างถูกต้อง
ความแข็งแกร่งจะมีค่าตามฟังก์ชันของจำนวน ความหลากหลาย และnowrap |ความสุ่มของตัวอักษร
การใช้รหัสผ่านที่เข้มแข็งย่อมลดความเสี่ยงของระบบไม่ให้ถูกบุกรุก แต่ก็ใช่ว่าจะทดแทนการรักษาความปลอดภัยชนิดอื่นๆ ได้
ประสิทธิผลของรหัสผ่านจะขึ้นอยู่กับการออกแบบและการทำให้เกิดผลของปัจจัยพิสูจน์ตัวจริงต่างๆ รวมทั้งสิ่งที่ผู้ใช้รู้ (เช่นรหัสผ่าน) สิ่งที่มี (เช่น กุญแจฮาร์ดแวร์) และสิ่งที่เป็น (เช่น ลายนิ้วมือ)
ปัจจัยแรกที่ว่าเป็นประเด็นหลักของบทความนี้ 
อัตราที่ผู้โจมตีสามารถทดลองรหัสผ่านกับระบบเป็นปัจจัยหลักที่กำหนดความมั่นคง 
ระบบบางอย่างจึงมีการให้พักนอกเวลาเป็นวินาทีๆ หลังจากที่ใส่รหัสผ่านผิดๆ เพียงไม่กี่ครั้ง (เช่น 3ครั้ง)
เมื่อไร้ความบกพร่องชนิดอื่นๆ ระบบดังกล่าวก็จะสามารถรักษาความมั่นคงด้วยรหัสผ่านที่ไม่ต้องซับซ้อนมาก 
อย่างไรก็ดี ระบบก็ยังต้องเก็บข้อมูลรหัสผ่านของผู้ใช้ในรูปแบบบางอย่าง ถ้าข้อมูลนั้นถูกขโมย ก็อาจเป็นปัจจัยให้รหัสผ่านถูกแฮ็กได้
ในปี2019 ศูนย์ความมั่นคงทางไซเบอร์แห่งชาติสหราชอาณาจักร ได้วิเคราะห์nowrap |ฐานข้อมูลบัญชีรั่วไหลที่เป็นสาธารณะ เพื่อตรวจดูว่าผู้ใช้ใช้คำหรือวลีอะไรเป็นรหัสผ่านมากที่สุด 
ที่นิยมที่สุดก็คือ 123456 ซึ่งถูกแฮ็กมาแล้วถึง 23 ล้านครั้ง 
ที่นิยมเป็นอันดับสองก็คือ 123456789 ซึ่งก็เดาได้ไม่ยากกว่ามาก

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

**ความถูกต้องของรหัสผ่านที่เดา**
ระบบที่ใช้รหัสผ่านเพื่อพิสูจน์ตัวตนจะต้องตรวจสอบว่ารหัสผ่านที่ให้ถูกต้องหรือไม่ 
ถ้าเก็บรหัสผ่านเปล่าไว้ในไฟล์หรือในฐานข้อมูล ผู้โจมตีที่เข้าถึงระบบได้ก็อาจสามารถเก็บรหัสผ่านของผู้ใช้ได้ทั้งหมด 
ทำให้เข้าถึงบัญชีในระบบได้ทั้งหมด และบางที ก็ระบบอื่นๆ ด้วยที่ผู้ใช้ใช้รหัสผ่านเช่นเดียวกันหรือคล้ายๆ กัน 
วิธีลดความเสี่ยงอย่างหนึ่งก็คือการเก็บแต่ค่าแฮช (cryptographic hash) ของรหัสผ่านแทนที่จะเก็บรหัสผ่านเปล่าเอง 
ค่าแฮชที่ทำตามมาตรฐานต่างๆ เช่น จากกลุ่ม Secure Hash Algorithm (SHA) จะคำนวณกลับคืนเป็นรหัสผ่านดั้งเดิมได้ยากมาก ดังนั้นผู้โจมตีที่เพียงแต่ได้ค่าแฮช จึงไม่สามารถบอกรหัสผ่านดั้งเดิมโดยทันที 
แต่การมีค่าแฮชก็จะอาจทำให้แฮ็กรหัสผ่านได้เมื่อทำออฟไลน์ 
มีโปรแกรมเจาะรหัสผ่านที่สามารถทดสอบรหัสได้เป็นจำนวนมากโดยคำนวณค่าแฮชที่เป็นเป้าหมาย 
เทคโนโลยีได้พัฒนาขึ้นเรื่อยๆ ดังนั้น การเดารหัสผ่านก็เร็วขึ้นเรื่อยๆ เช่นกัน 
ยกตัวอย่างเช่นในปี2010 สถาบันการวิจัยจอร์เจียเทคได้พัฒนาวิธีการเจาะรหัสผ่านที่เร็วยิ่งขึ้นมากโดยใช้หน่วยประมวลผลกราฟิกส์เป็นตัวคำนวณ
ในปี2011 ก็เริ่มมีผลิตภัณฑ์ที่อ้างว่าสามารถทดสอบรหัสผ่านได้ถึง 112,000 ตัว/วินาทีบนคอมพิวเตอร์ตั้งโต๊ะธรรมดาโดยใช้หน่วยประมวลผลกราฟิกส์ชั้นสูงที่มีในตอนนั้น
อุปกรณ์ที่ว่าสามารถเจาะรหัสผ่านยาว 6 ตัวอักษรและมีอักษรตัวเล็กหรือตัวใหญ่เพียงอย่างเดียวโดยเสร็จในวันเดียว 
และยังสามารถแจกกระจายงานไปยังคอมพิวเตอร์จำนวนมากเพื่อเพิ่มความเร็ว โดยจะเร็วตามจำนวนคอมพิวเตอร์ที่มีหน่วยประมวลผลกราฟิกส์ในระดับเดียวกัน 
มีเทคนิคเพิ่มความแข็งแกร่งของค่าแฮช คือ การยืดกุญแจ ซึ่งเพิ่มเวลาในการคำนวณค่าแฮช เป็นการลดอัตราการเดารหัสผ่านที่จะทำได้ 
แม้เทคนิคนี้ปัจจุบันจะจัดว่าเป็นแนวปฏิบัติที่ดีสุด แต่ระบบทั่วๆ ไปก็ไม่ค่อยใช้
สถานการณ์อีกอย่างหนึ่งที่ทำให้เดารหัสผ่านได้อย่างรวดเร็วก็คือเมื่อใช้รหัสผ่านเป็นกุญแจเข้ารหัสลับ (cryptographic key)
ผู้โจมตีจึงตรวจสอบดูได้ว่า รหัสผ่านที่เดาสามารถถอดรหัสลับของข้อมูลได้หรือไม่ 
เช่น มีผลิตภัณฑ์หนึ่งที่อ้างว่าสามารถตรวจสอบรหัสผ่านวายฟายชนิด WPA PSK ได้ถึง 103,000 ตัว/วินาที
ถ้าระบบเก็บรหัสผ่านไว้เป็นค่าแฮช ผู้โจมตีก็อาจคำนวณค่าแฮชไว้ล่วงหน้าสำหรับรหัสผ่านที่สามัญ 
หรือสำหรับรหัสผ่านที่สั้นๆ แล้วสามารถแฮ็กเอารหัสผ่านดั้งเดิมได้อย่างรวดเร็วเมื่อขโมยเอาค่าแฮชได้ 
อนึ่ง ผู้โจมตีอาจเก็บค่าแฮชไว้ในฐานข้อมูลที่เรียกว่า rainbow table ที่ทำให้เจาะเอารหัสผ่านได้อย่างมีประสิทธิภาพ
แต่วิธีการโจมตีนี้ก็ป้องกันได้โดยใช้ค่าสุ่มที่เรียกว่า cryptographic salt แล้วเก็บไว้ร่วมกับค่าแฮช
ค่าสุ่มนี้จะใช้ร่วมกับรหัสผ่านเมื่อคำนวณค่าแฮช ดังนั้นผู้โจมตีที่ใช้ฐานข้อมูลก็จะต้องเก็บรหัสผ่านกับค่าแฮชและค่าสุ่มที่เป็นไปได้ทุกค่า
ซึ่งทำไม่ได้เมื่อค่าสุ่มมีขนาดใหญ่พอเช่นเป็นเลข 32บิต 
แต่ระบบพิสูจน์ตัวตนเป็นจำนวนมากก็มักไม่ใช้ค่าสุ่มนี้ ดังนั้น จึงมีฐานข้อมูลเจาะรหัสผ่านสำหรับค่าแฮชโดยวิธีต่างๆ ทางอินเทอร์เน็ต 

**ค่าวัดความแข็งแกร่งเป็นเอนโทรปี**
รหัสผ่านจะแข็งแกร่งแค่ไหนสามารถกำหนดได้ด้วยเอนโทรปีของข้อมูล (information entropy) ซึ่งเป็นแนวคิดที่ได้จากสาขาทฤษฎีสารสนเทศ
ของข้อมูลเป็นบิตจำนวนน้อยที่สุดซึ่งสามารถบรรจุข้อมูลที่มีในรหัสผ่านชนิดหนึ่งๆ
โดยคร่าวๆ จะเท่ากับnowrap |ลอการิทึมฐานสองของจำนวนการเดาสูงสุดเพื่อให้ได้รหัสผ่าน โดยมักเรียกว่า "บิตเอนโทรปี"
รหัสผ่านที่มี 42บิตเอนโทรปีจะแข็งแกร่งเท่ากับการเลือกเลขศูนย์เลขหนึ่งโดยสุ่มติดต่อกัน 42ตัว เช่น โยนเหรียญหัวก้อย 42ครั้ง 
กล่าวอีกอย่างก็คือ รหัสผ่านที่มี 42บิตเอนโทรปีจะต้องเดา 242 (4,398,046,511,104) ครั้งเพื่อให้ได้รหัสผ่านที่เป็นไปได้ทั้งหมด
ดังนั้น การเพิ่มเอนโทรปีของรหัสผ่าน 1บิตก็จะเพิ่มจำนวนการเดาเป็นเท่าตัว จึงทำให้แฮ็กได้ยากขึ้นเป็นทวีคูณ 
ผู้โจมตีโดยเฉลี่ยจะต้องเดารหัสผ่านเป็นจำนวนครึ่งหนึ่งก่อนจะได้รหัสผ่านที่ถูกต้อง

**รหัสผ่านสุ่ม**
รหัสผ่านสุ่มจะประกอบด้วยตัวอักษร/สัญลักษณ์เป็นจำนวนหนึ่งโดยได้จากระบวนการเลือกแบบสุ่มที่แต่ละตัวในชุดอักษร/สัญลักษณ์จะมีโอกาสเลือกเท่าๆ กัน 
อาจจะเป็นอักษรหนึ่งๆ จากชุดอักขระเช่นแอสกี หรือเป็นพยางค์ที่ออกแบบเพื่อใช้สร้างรหัสผ่านที่ออกเสียงได้ หรือแม้แต่เป็นคำจากรายการคำ (เป็นการสร้างพาสเฟรซ)
ความแข็งแกร่งของรหัสผ่านสุ่มจะขึ้นอยู่กับเอนโทรปีของตัวสร้าง
แต่ตัวสร้างก็มักทำสุ่มไม่ได้จริงๆ แต่ทำเป็นเสมือนสุ่ม (pseudorandom)
ตัวสร้างรหัสผ่านที่มีให้ใช้ทั่วไปหลายตัวต่างใช้ตัวสร้างเลขสุ่มในคลังโปรแกรมที่จริงๆ ก็มีเอนโทรปีจำกัด
แต่ระบบปฏิบัติการปัจจุบันโดยมากก็มีตัวสร้างเลขสุ่มที่ดีทางวิทยาการรหัสลับ ดังนั้นจึงเหมาะสมเพื่อใช้สร้างรหัสผ่าน
อนึ่ง ยังสามารถใช้ลูกเต๋าธรรมดาเพื่อสร้างรหัสผ่านสุ่มอีกด้วย
รหัสผ่านที่สร้างด้วยกระบวนการเลือกสัญญลักษณ์ต่อๆ กันโดยสุ่ม มีความยาว L โดยเลือกจากกลุ่มสัญลักษณ์จำนวน N ตัว จะสามารถสร้างรหัสผ่านได้อย่างมาก NL ตัว
ดังนั้นไม่ว่าจะเพิ่มค่า L หรือ N ก็จะทำให้รหัสผ่านที่สร้างแข็งแกร่งยิ่งขึ้น 
ความแข็งแกร่งเมื่อวัดโดยเอนโทรปีข้อมูล ก็คือnowrap |ลอการิทึมฐานสอง (log2) ของจำนวนรหัสผ่านที่เป็นไปได้ โดยสมมุติว่า สัญลักษณ์แต่ละตัวในรหัสผ่านจะเลือกอย่างเป็นอิสระ 
ดังนั้น เอนโทรปีข้อมูล H ก็จะคำนวณได้ด้วยสูตร
H มีหน่วยเป็นบิต
สำหรับนิพจน์ช่องสุดท้าย log จะมีฐานอะไรก็ได้
ข้อมูล 1ไบต์มักจะเขียนเป็นเลขฐานสิบหก 2ตัว
เพื่อจะหาความยาวของรหัสผ่าน L ที่มีความแข็งแกร่ง H โดยเป็นรหัสผ่านสุ่มที่ได้จากชุดอักขระที่มีสัญลักษณ์ N ตัว สามารถใช้สูตรดังนี้คือ
โดย  หมายถึงฟังก์ชันเพดาน คือ
การปัดเศษขึ้นให้เลขเป็นจำนวนเต็ม
ตารางต่อไปนี้ใช้สูตรดังว่าเพื่อแสดงจำนวนสัญลักษณ์ในรหัสผ่านที่สร้างขึ้นโดยสุ่มจริงๆ เพื่อให้ได้เอนโทรปีตามที่ต้องการ โดยใช้ชุดสัญลักษณ์ที่สามัญ 

**รหัสผ่านที่มนุษย์สร้าง**
ปกติรู้ได้เลยว่ามนุษย์สร้างรหัสผ่านให้มีเอนโทรปีอันสมควรได้แย่มาก
งานศึกษากับคนครึ่งล้านประเมินว่าเอนโทรปีโดยเฉลี่ยของรหัสผ่านอยู่ที่ 40.54บิต
ในงานวิเคราะห์รหัสผ่านยาว 8ตัว 3 ล้านรหัส มีการใช้อักษร "e" 1.5 ล้านครั้ง อักษร "f" เพียงแค่ 250,000ครั้ง 
ถ้าเป็นการแจกแจงแบบเอกรูปจริง ๆ อักษรแต่ละตัวก็ควรจะใช้ 900,000ครั้ง 
เลขที่ใช้มากที่สุดคือ 1 อักษรที่ใช้มากที่สุดคือ a, e, o และ r
ผู้ใช้มักจะไม่ใช้อักษรชุดใหญ่กว่านี้เพื่อสร้างรหัสผ่านให้ปลอดภัยยิ่งขึ้น
ยกตัวอย่างเช่น การฟิชชิงเว็บไซต์ MySpace ในปี2006 มีผลให้แฮ็กได้รหัสผ่าน 34,000 รหัส แต่มีเพียงร้อยละ8.3 เท่านั้นที่ใช้อักษรตัวเล็กตัวใหญ่ ตัวเลขและสัญลักษณ์
ความแข็งแกร่งจากการใช้ชุดอักขระแอสกีทั้งหมด (คือตัวเลข อักษรเล็กใหญ่ และอักษรพิเศษ) 
จะได้ก็ต่อเมื่ออักษรแต่ละตัวในรหัสผ่านอาจเป็นตัวใดก็ได้จากชุดอักขระโดยมีโอกาสเท่าๆ กัน 
นี่ดูเหมือนจะบอกว่ารหัสผ่านควรจะมีอักษรจากกลุ่มอักษรต่างๆ ทุกกลุ่ม เช่น ตัวใหญ่ ตัวเล็ก ตัวเลข และสัญลักษณ์ที่เหลือ 
แต่การบังคับให้มีรูปแบบกลับทำให้เดาได้ง่ายแล้วถูกแฮ็กได้ง่ายขึ้น 
เป็นการลดความแข็งแกร่งของรหัสผ่าน 
ข้อบังคับที่ดีกว่าก็คือให้ใช้รหัสผ่านที่ไม่มีในพจนานุกรม ไม่ใช่ชื่อ ไม่ใช่รูปแบบเลขทะเบียนรถ เป็นต้น
ถ้าบังคับให้ใช้รูปแบบ มนุษย์ก็มักจะใช้รูปแบบที่คาดเดาได้ เช่น ในภาษาอังกฤษ อักษรตัวแรกจะเป็นตัวใหญ่ ข้างหลังเติมตัวเลข 1-2 ตัว แล้วตามด้วยอักษรพิเศษ 
การคาดเดาได้เช่นนี้จึงหมายความว่า การใช้กลุ่มอักษรต่างๆ ก็จะเพิ่มความแข็งแกร่งเพียงเล็กน้อย
เมื่อเทียบกับการใช้รหัสผ่านสุ่มที่เพิ่มความแข็งแกร่งยิ่งกว่า

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

**บิตเอนโทรปีตามความจำเป็น**
บิตเอนโทรปีอย่างต่ำสุดที่จำเป็นจะขึ้นอยู่กับโมเดลการคุกคาม (threat model) ของแอปนั้นๆ
แต่ถ้าไม่ขยายกุญแจก็จะต้องใช้รหัสผ่านที่มีเอนโทรปีสูงกว่า
เอกสารขอความเห็นปี2005 ยกตัวอย่างโมเดลการคุกคามกับเอนโทรปีที่จำเป็นแต่ละอย่างๆ
แล้วได้คำตอบว่าต้องมีเอนโทรปี 29บิตถ้าต้องรับมือกับการโจมตีทางออนไลน์เท่านั้น 
และมีถึง 96บิตสำหรับใช้เป็นกุญแจในโปรแกรมเข้ารหัสลับเมื่อกุญแจที่ว่าต้องมั่นคงในระยะยาวและไม่ได้ขยาย
ในปี2010 สถาบันการวิจัยจอร์เจียเทคทำการศึกษาเรื่องกุญแจที่ไม่ขยาย แล้วแนะนำให้ใช้รหัสผ่านสุ่มที่มีอักษร 12ตัวเป็นอย่างต่ำ
ควรเข้าใจด้วยว่าเพราะคอมพิวเตอร์เร็วขึ้นเรื่อยๆ ดังนั้น เพื่อจะป้องกันการโจมตีแบบออฟไลน์ บิตเอนโทรปีก็จะต้องเพิ่มขึ้นเรื่อยๆ เช่นกัน 
ค่าสูงจะใช้กับข้อบังคับที่เข้มงวดเมื่อเลือกกุญแจสำหรับเข้ารหัสลับ
ในปี1999 โปรเจ็กต์ EFF DES cracker แฮ็กการเข้ารหัสแบบ DES ขนาด 56บิตได้โดยไม่ถึงวันเมื่อใช้ฮาร์ดแวร์ที่ออกแบบเป็นพิเศษ
ในปี2002 distributed.net แฮ็กกุญแจ 64บิตภายใน 4ปี 9เดือนและ 23วัน
ในปี2011 distributed.net ประเมินว่า การแฮ็กกุญแจ 72บิตโดยใช้ฮาร์ดแวร์ปัจจุบันจะใช้เวลา 45,579วันหรือ 124.8ปี
เมื่ออาศัยความรู้ความเข้าใจในข้อจำกัดของฟิสิกส์พื้นฐานปัจจุบัน คาดว่าจะไม่มีคอมพิวเตอร์ดิจิตัล (หรือเครือข่ายคอมพิวเตอร์) ที่สามารถแฮ็กการเข้ารหัสลับขนาด 256บิตโดยใช้กำลัง
แต่คอมพิวเตอร์ควอนตัมจะสามารถทำได้หรือไม่ก็ยังไม่ชัดเจน แม้การวิเคราะห์ทางทฤษฎีแสดงว่าอาจเป็นไปได้

**รหัสผ่านที่เข้มแข็ง**

**แนวทางสามัญ**
แนวทางในการเลือกรหัสผ่านที่ดีปกติจะออกแบบให้เดารหัสผ่านได้ยากแม้เมื่อผู้โจมตีจะรู้ว่าผู้ใช้ได้สร้างรหัสผ่านอย่างไร
แนวทางสามัญที่องค์กรต่างๆ เสนอรวมทั้ง- ทั่วไปแนะนำให้ตั้งรหัสผ่านที่ยาวน้อยสุด 8ตัวอักษร ผู้เชี่ยวชาญความมั่นคงทางไซเบอร์ของสหรัฐและสหราชอาณาจักร แนะนำให้ใช้รหัสผ่านที่ยาวและจำได้ง่าย แทนที่จะใช้รหัสสั้นแต่มีอักษรซับซ้อน - สร้างรหัสผ่านแบบสุ่มเมื่อเป็นไปได้ - หลีกเลี่ยงรหัสผ่านเดียวกันที่ใช้ซ้ำๆ (เช่น กับบัญชีหลายบัญชี และ/หรือระบบหลายระบบ)- เลี่ยงตัวอักษรซ้ำๆ เลี่ยงตัวอักษรตามรูปแบบของคีย์บอร์ด การใช้คำในพจนานุกรม และการใช้ตัวอักษรและตัวเลขที่เป็นลำดับ- เลี่ยงการใช้ข้อมูลที่สัมพันธ์กับผู้ใช้ที่ปรากฏแล้วหรือจะปรากฏเป็นสาธารณะ เช่นชื่อผู้ใช้ ชื่อของบรรพบุรุษ และวันที่ - เลี่ยงการใช้ข้อมูลที่เพื่อนร่วมงานหรือว่าคนที่รู้จักอาจจะรู้เกี่ยวกับผู้ใช้ เช่นชื่อญาติ ชื่อสัตว์เลี้ยง ชื่อคนรักทั้งปัจจุบันและอดีต หรือข้อมูลnowrap |อัตชีวประวัติ เช่น หมายเลขบัตรประชาชน ชื่อบรรพบุรุษ หรือวันที่ - เลี่ยงรหัสผ่านผสมที่เอาส่วนประกอบอันอ่อนแอดังที่กล่าวมาแล้วมาผสมแบบง่ายๆ
แม้การบังคับให้ใช้อักษรตัวเล็กตัวใหญ่ ตัวเลข และสัญลักษณ์ในรหัสผ่านจะเป็นนโยบายที่สามัญ แต่จริงๆ พบว่า นี่ลดความมั่นคงของรหัสผ่าน ทำให้เจาะเอาได้ง่ายกว่า 
โดยงานวิจัยแสดงว่าการใช้อักษรต่าง ๆ ตามที่ว่าสามารถเดาได้ง่าย
ในสหรัฐและสหราชอาณาจักร
เจ้าหน้าที่ด้านความมั่นคงทางไซเบอร์ของรัฐแนะนำไม่ให้บังคับใช้นโยบายรหัสผ่านตามที่ว่า 
สัญลักษณ์ที่ซับซ้อนยังทำให้รหัสผ่านจำได้ยากยิ่งกว่า ซึ่งทำให้ต้องเขียนบันทึกเพิ่มขึ้น ตั้งรหัสผ่านใหม่บ่อยขึ้น ใช้รหัสผ่านซ้ำๆ กันยิ่งขึ้น ทั้งหมดล้วนแต่ลดความมั่นคง จริง ๆ ไม่ได้เพิ่ม 
ต่อมาผู้แต่งกฎเกณฑ์ความซับซ้อนของรหัสผ่านจึงขอโทษและยอมรับว่ากฎที่ตั้งขึ้นลดความมั่นคงลงดังที่งานวิจัยได้พบ 
ซึ่งเป็นสิ่งที่สื่อรายงานอย่างกว้างขวางในปี2017
นักวิจัยความมั่นคงออนไลน์
และที่ปรึกษาต่างๆ ต่างก็สนับสนุนข้อเปลี่ยนแปลงดังกล่าว
ว่าเป็นคำแนะนำการปฏิบัติที่ดีสุดในเรื่องรหัสผ่าน 
มีแนวทางปฏิบัติบางอย่างที่แนะนำไม่ให้เขียนบันทึกรหัสผ่าน แต่แนวทางอื่นๆ ก็ให้ข้อสังเกตว่าผู้ใช้มักจะมีรหัสผ่านจำนวนมาก ดังนั้นจึงแนะนำให้เขียนรหัสผ่านเมื่อเก็บไว้ในที่ปลอดภัย 
ไม่ใช่ติดไว้กับจอภาพ หรือไว้ในลิ้นชักที่ไม่ได้ล็อก
ศูนย์ความมั่นคงไซเบอร์แห่งชาติสหราชอาณาจักรแนะนำให้ใช้โปรแกรมจัดการรหัสผ่าน
เว็บไซต์หรือคีย์บอร์ดอาจจำกัดชุดอักขระที่ใช้ได้กับรหัสผ่าน

**ตัวอย่างรหัสผ่านที่อ่อนแอ**
เหมือนกับวิธีป้องกันความปลอดภัยอื่นๆ รหัสผ่านจะแข็งแกร่งไม่เท่ากัน 
บางรหัสก็จะอ่อนแอกว่า
ยกตัวอย่างเช่น การแฮ็กคำในพจนานุกรม กับการแฮ็กคำที่ทำให้ยุ่งเหยิงขึ้นบ้าง (เช่น แทนที่อักษรด้วยตัวเลขซึ่งเป็นวิธีการที่สามัญอย่างหนึ่ง)
อาจจะต้องใช้เวลาเพิ่มขึ้นเพียงไม่กี่วินาที จึงไม่ได้เพิ่มความแข็งแกร่งอะไร 
ตัวอย่างด้านล่างแสดงวิธีการสร้างรหัสผ่านที่อ่อนแอซึ่งล้วนแต่มีรูปแบบง่ายๆ ทำให้ได้รหัสผ่านที่มีเอนโทรปีต่ำ ซึ่งสามารถเจาะได้ง่ายๆ- รหัสผ่านโดยปริยาย (ที่หมายให้เปลี่ยนเมื่อติดตั้งระบบ) เช่น password, default, admin, guest รายการรหัสผ่านโดยปริยายพบได้ทั่วไปทางอินเทอร์เน็ต - รหัสผ่านที่นำไปใช้อีก คือรหัสผ่านหนึ่งควรใช้เฉพาะกับบัญชีหนึ่งเท่านั้น การเปลี่ยนรหัสผ่านเพียงเล็กน้อย เช่นเปลี่ยนอักษรไม่กี่ตัว ตัวเลขไม่กี่ตัว ไม่ได้เพิ่มความมั่นคงเพียงพอให้นำไปใช้อีก- คำในพจนานุกรมต่าง ๆ เช่น ในภาษาอังกฤษ คือ chameleon, RedSox, sandbags, bunnyhop!, IntenseCrabtree แต่ก็รวมคำในพจนานุกรมที่ไม่ใช่ภาษาอังกฤษด้วย - คำที่ตามด้วยตัวเลข เช่น password1, deer2000, john1234 ซึ่งสามารถแฮ็กได้อย่างรวดเร็ว - คำที่ทำอำพรางแบบง่ายๆ เช่น p@ssw0rd, l33th4x0r, g0ldf1sh ซึ่งก็แฮ็กได้อย่างรวดเร็วเหมือนกัน ยกตัวอย่างเช่นรหัสผ่านของแอดมินสำหรับผู้ประกอบการรับรองโดเมน DigiNotar เมื่อถูกแฮ็กรายงานว่าเป็น Pr0d@dm1n เหตุการณ์นี้ต่อมานำไปสู่การล้มละลายของบริษัท- คำซ้อน เช่น crabcrab, stopstop, treetree, passpass- ลำดับแป้นพิมพ์บนคีย์บอร์ด เช่น qwerty, 123456, asdfgh รวมทั้งลำดับแนวเฉียงและลำดับแนวกลับ เช่น qazplm, ytrewq- ลำดับตัวเลขที่รู้จักกันดีเช่น 911(9-1-1, 9/11), 314159...(พาย), 27182...(e), 112 (1-1-2)- ข้อมูลระบุตัวตน เช่น jsmith123, 1/1/1970, 555-1234, ชื่อผู้ใช้/บัญชี- รหัสผ่านอ่อนแอซึ่งไม่ใช่ภาษาอังกฤษ เช่น contraseña (สเปน) และ ji32k7au4a83 (ภาษาจีน)- ข้อมูลเกี่ยวกับบุคคลเช่น เลขทะเบียนรถ เลขบัตรประชาชน เบอร์โทรศัพท์ทั้งปัจจุบันและอดีต หมายเลขนักเรียนนักศึกษา ที่อยู่ปัจจุบัน ที่อยู่ในอดีต วันเกิด ทีมกีฬา ชื่อ/ชื่อเล่น/วันเกิดของญาติ/สัตว์เลี้ยง ทั้งหมดสามารถเจาะได้ง่ายๆ หลังจากตรวจดูรายละเอียดของบุคคล - วันที่ เพราะมีรูปแบบที่ทำให้รหัสผ่านอ่อนแอ - ชื่อสถานที่ต่างๆ ที่รู้จักกันดีเช่น นิวยอร์ก เทกซัส จีน ลอนดอน- ชื่อยี่ห้อ คนดัง ทีมกีฬา กลุ่มนักดนตรี รายการทีวี ภาพยนตร์- รหัสผ่านสั้นๆ แม้จะไม่มีจุดอ่อนดังกล่าว แต่ถ้าสั้นเกินไปก็จะแฮ็กได้ง่าย 
มีเหตุอื่นๆ อีกที่ทำให้รหัสผ่านอ่อนแอ
ขึ้นอยู่กับการโจมตีว่ามีประสิทธิภาพแค่ไหน 
หลักสำคัญก็คือรหัสผ่านควรจะมีเอนโทรปีสูง ซึ่งทั่วไปก็คือความสุ่มของรหัสผ่าน ไม่ควรได้มาจากรูปแบบที่เหมือนกับฉลาด ไม่ควรมีข้อมูลระบุผู้ใช้ 
อนึ่ง บริการออนไลน์มักจะมีวิธีการกู้บัญชี ซึ่งถ้ามีจุดอ่อนและผู้โจมตีรู้วิธีก็อาจจะไม่ต้องพยายามแฮ็กรหัสผ่านเลย 

**แนวทางรหัสผ่านใหม่**
บทความปี2012 ในวารสารสมาคมคอมพิวเตอร์เอซีเอ็มเน้นให้ใช้ตัวอักษรตัวเล็ก ตัวใหญ่ และตัวเลข มีอักษร 8ตัวหรือยิ่งกว่า
เพราะรหัสผ่านดังว่าสามารถทนการพยายามเดาเป็น 10 ล้านครั้ง/วินาทีได้นานถึง 252วัน 
แต่จริงๆ ถ้าใช้หน่วยประมวลผลกราฟิกส์ในเวลานั้นทำการ ก็จะใช้เวลาเพียงแค่ 9 ชั่วโมงโดยมีอัตราเดารหัสผ่านที่ 7,000 ล้านครั้ง/วินาที 
ส่วนรหัสผ่านที่ยาว 13 ตัวอักษรก็จะสามารถทนการพยายามเดาได้ถึง 900,000ปี
ถ้าใช้เทคโนโลยีปี2023 มาตรฐานรหัสผ่านตัวเล็ก ตัวใหญ่และตัวเลข 8ตัว จะสามารถเดาได้ในไม่กี่ชั่วโมง 
รหัสผ่านยาว 13ตัวอักษรจะใช้เวลาเดาเพียงไม่กี่ปี 
ดังนั้นจึงต้องเปลี่ยนความคิดใหม่ 
ปัจจุบันแนะนำให้ใช่รหัสผ่านที่มีตัวอักษร 13-16 ตัว 
โดยยังต้องเพิ่มใช้วิธีการพิสูจน์ตัวจริงด้วยปัจจัยหลายอย่างเป็นตัวเสริมความมั่นคงด้วย 
การสร้างโปรแกรมจัดการรหัสผ่านและการนำมาใช้อย่างแพร่หลาย ยังช่วยผู้ใช้ให้สามารถสร้างและเก็บรักษารหัสผ่านที่ยาว แข็งแกร่ง และใช้กับบัญชีหรือแอปเดี่ยวๆ

**นโยบายรหัสผ่าน**
นโยบายรหัสผ่านเป็นแนวทางการเลือกรหัสผ่านที่ดีพอ 
โดยมีจุดประสงค์ - ช่วยผู้ใช้ให้เลือกรหัสผ่านที่แข็งแกร่ง - ช่วยให้รหัสผ่านเหมาะสมกับสิ่งที่ต้องป้องกัน - ให้คำแนะนำแก่ผู้ใช้ในเรื่องการบริหารจัดการรหัสผ่าน - ให้คำแนะนำในการเปลี่ยนรหัสผ่านที่หายหรือว่าถูกแฮ็ก- ใช้แบล็กลิสต์เพื่อป้องกันไม่ให้ใช้รหัสผ่านที่อ่อนแอหรือเดาได้ง่าย 
นโยบายรหัสผ่านก่อนๆ มักจะระบุกลุ่มอักษรซึ่งรหัสผ่านจะต้องมี เช่น ตัวเลข สัญลักษณ์ ตัวเล็ก ตัวใหญ่ 
แม้จะยังมีใช้อยู่ แต่งานวิจัยก็ได้ชี้แล้วว่า เป็นข้อบังคับที่ไม่ปลอดภัย
ผู้เริ่มตั้งนโยบายนี้ดั้งเดิมก็เห็นด้วย
ทั้งองค์กรความมั่นคงทางไซเบอร์ของสหรัฐและสหราชอาณาจักรก็เห็นด้วย
กฎความซับซ้อนรหัสผ่านโดยมีสัญลักษณ์ที่บังคับใช้ แพลตฟอร์มหลักๆ เช่น กูเกิล 
เฟซบุ๊ก
ก่อนหน้านี้ก็เคยใช้ 
แต่ต่อมาก็เลิกหลังพบว่าจริงๆ ลดความมั่นคงเพราะมนุษย์กลับสร้างความเสี่ยงเพิ่ม 
การบังคับเรื่องความซับซ้อนจึงทำให้รหัสผ่านมีรูปแบบที่เดาได้ง่ายมาก เช่น ใส่ตัวเลขด้านหลังรหัสผ่าน ใช้เลข 3 แทนอักษร E เป็นต้น จึงทำให้เจาะได้ง่าย 
ดังนั้น นโยบายปัจจุบันจึงแนะนำให้ใช้รหัสผ่านที่ตัวอักษรไม่ซับซ้อนแต่ยาว (เป็นพาสเฟรซ) 
กฎบังคับให้ซับซ้อนยังเพิ่มค่าใช้จ่ายในการสนับสนุนผู้ใช้ ทำความรำคาญให้ผู้ใช้ และเป็นอุปสรรคไม่ให้ผู้ใช้เปิดบัญชี 
นโยบายให้รหัสผ่านหมดอายุที่เคยใช้ก็พบว่าไม่ดีเหมือนกัน
ซึ่งต่อมารัฐบาลสหรัฐและสหราชอาณาจักรรวมทั้งบริษัทไมโครซอฟต์ก็เลิกใช้ทั้งหมด
การมีวันหมดอายุเคยคิดว่ามีประโยชน์ดังนี้- ถ้าประเมินว่ารหัสผ่านหนึ่งๆ สามารถเจาะได้ในร้อยวัน การหมดอายุเร็วกว่านั้นอาจจะทำให้ไม่มีเวลาเจาะพอ - ถ้ารหัสผ่านถูกแฮ็กเอาไปแล้ว การบังคับให้เปลี่ยนเป็นประจำอาจจะจำกัดช่วงเวลาที่ผู้โจมตีสามารถเข้าใช้บัญชี 
แต่การหมดอายุของรหัสผ่านกลับมีข้อเสียว่า- การให้ผู้ใช้เปลี่ยนรหัสผ่านบ่อยๆ ทำให้ใช้รหัสผ่านที่ง่ายๆ และอ่อนแอ - ถ้ามีรหัสผ่านที่แข็งแกร่งอยู่แล้ว ก็ไม่มีเหตุผลที่จะเปลี่ยน การเปลี่ยนอาจจะทำให้ได้รหัสผ่านที่แข็งแกร่งน้อยลง - ผู้โจมตีน่าจะใช้รหัสผ่านที่เจาะได้อย่างทันทีเพื่อติดตั้งประตูหลังกับระบบโดยผ่านกระบวนการเพิ่มสิทธิพิเศษ หลังจากทำอย่างนี้ได้แล้ว การเปลี่ยนรหัสผ่านก็จะไม่สามารถป้องกันผู้โจมตีไม่ให้เข้าถึงระบบนั้นๆ 

**การสร้างและบริหารรหัสผ่าน**
รหัสผ่านซึ่งเจาะได้ยากที่สุดสำหรับชุดอักขระและความยาวหนึ่งๆ จะเป็นสายอักขระที่เลือกอักษรโดยสุ่ม
ถ้ายาวพอก็จะทนต่อการโจมตีด้วยกำลังเพราะมีอักษรหลายตัว และการโจมตีแบบเดาเพราะมีค่าเอนโทรปีสูง
แต่ก็จะจำได้ยาก 
ดังนั้น การบังคับจะเพิ่มโอกาสให้ผู้ใช้เขียนบันทึกรหัสผ่าน เก็บไว้ในอุปกรณ์เคลื่อนที่ หรือแชร์กับคนอื่นๆ เพื่อกันการจำไม่ได้ 
แม้บางคนจะพิจารณาว่าวิธีการจำรหัสผ่านเหล่านี้เพิ่มความเสี่ยงทางความมั่นคง คนอื่นๆ ก็คิดว่า เป็นไปไม่ได้ที่จะหวังให้ผู้ใช้จำรหัสผ่านที่ซับซ้อนสำหรับบัญชีที่มีเป็นโหลๆ 
ยกตัวอย่างเช่นในปี2005 ผู้เชี่ยวชาญทางความมั่นคง บรูซ ชไนเออร์ แนะนำให้เขียนบันทึกรหัสผ่านดังนี้
วิธีการต่างๆ ดังต่อไปนี้อาจเพิ่มการยอมรับใช้รหัสผ่านที่แข็งแกร่งได้ถ้าดำเนินการอย่างระมัดระวัง - โปรแกรมฝึกหัด โดยให้เข้าโปรแกรมอีกถ้าไม่ทำตามนโยบายรหัสผ่าน (เช่น รหัสผ่านหาย รหัสผ่านไม่ดี เป็นต้น)- ลดจำนวนหรือกำจัดการให้เปลี่ยนรหัสผ่านเพราะหมดอายุสำหรับผู้ที่ใช้รหัสผ่านที่แข็งแกร่ง มีโปรแกรมประเมินความแข็งแกร่งอย่างคร่าวๆ ของรหัสผ่านซึ่งสามารถใช้เมื่อตั้งหรือเปลี่ยนรหัสผ่าน - ให้แสดงข้อมูลว่าได้ลงชื่อใช้บัญชีครั้งสุดท้ายเมื่อไร โดยหวังว่าผู้ใช้จะเห็นการลงชื่อเข้าบัญชีที่ไม่ได้อนุญาต ซึ่งแสดงว่ารหัสผ่านอาจจะถูกแฮ็ก - มีระบบอัตโนมัติที่ให้ผู้ใช้กู้รหัสผ่าน ซึ่งช่วยลดการติดต่อกับแอดมินเพื่อให้ช่วย แต่ปัญหาก็คือระบบกู้รหัสผ่านบางอย่างก็มีจุดอ่อนของตนๆ เช่น ถ้าใช้การถามคำถามง่ายๆ เกี่ยวกับผู้ใช้ ก็อาจเดาคำตอบได้ง่าย ซึ่งทำให้ผู้โจมตีสามารถใช้ระบบกู้รหัสผ่านตั้งแต่ต้นเพื่อเลี่ยงการแฮ็กรหัสผ่านที่แข็งแกร่ง- ให้ใช้แต่รหัสผ่านที่สร้างโดยสุ่มซึ่งผู้ใช้ไม่สามารถเปลี่ยนได้ หรืออย่างน้อยก็ให้เป็นตัวเลือกอย่างหนึ่ง

**วิธีการจำ**
นโยบายรหัสผ่านบางครั้งจะแนะนำวิธีการจำรหัสผ่าน - ให้หาวลีช่วยจำแล้วใช้สร้างรหัสผ่าน ซึ่งเกือบจะเหมือนสุ่มแต่ก็ยังจำได้ง่าย เช่นการใช้อักษรตัวแรกของคำแต่ละคำในวลีที่จำได้ง่าย งานวิจัยประเมินว่าความแข็งแกร่งของรหัสผ่านดังว่าอยู่ที่ประมาณ 3.7บิตต่ออักษร เทียบกับ 6.6บิตต่ออักษรของรหัสผ่านที่เลือกอักษรโดยสุ่มจากชุดอักขระแอสกีที่แสดงผล วลีที่ตลกหรือเหลวไหลอาจจะจำได้ง่ายกว่า วิธีอีกอย่างเพื่อสร้างรหัสผ่านสุ่มและจำได้ง่ายก็คือใช้คำสุ่ม (เช่น nowrap |ไดซ์แวร์) หรือพยางค์สุ่มจากรายการ- การตั้งเรื่องช่วยจำรหัสผ่าน โดยไม่ต้องเป็นเรื่องที่สมเหตุสมผล เพียงแต่ให้จำได้ ซึ่งช่วยให้ได้รหัสผ่านที่เป็นสุ่มจริงๆ - การสร้างรหัสผ่านโดยเป็นรูป คืออาศัยลำดับแป้นพิมพ์ที่กด ไม่ต้องใส่ใจว่าเป็นตัวอักษรอะไร เช่น !qAsdE#2 มีรูปเป็นสี่เหลี่ยมสำหรับคีย์บอร์ดสหรัฐ วิธีนี้มีชื่อว่า PsychoPass แต่รหัสผ่านดังกล่าวก็แข็งแกร่งน้อยกว่าที่นับตามจำนวนอักษร เพราะอักษรแต่ละตัวจริงๆ ไม่ได้เป็นอิสระจากตัวก่อน อนึ่ง ลำดับอักษรดังว่าก็มักจะรวมอยู่ในพจนานุกรมรหัสผ่าน แต่นักวิจัยก็ได้เสนอวิธีการปรับปรุงวิธีนี้ให้ดีขึ้น- การใช้รูปแบบรหัสผ่าน แต่ไม่ว่าจะเป็นรูปแบบใดๆ ก็จะทำให้เดาได้ง่ายขึ้น ไม่ว่าจะเดาโดยระบบอัตโนมัติหรือไม่ 
** ยกตัวอย่างเช่นมีรูปแบบรหัสผ่านที่ใช้อักษรโรมันโดยไม่ไวตัวเล็กตัวใหญ่ คือ พยัญชนะ สระ พยัญชนะ พยัญชนะ สระ พยัญชนะ ตัวเลข ตัวเลข (เช่น pinray45) รูปแบบการสลับพยัญชนะกับสระหมายให้ออกเสียงรหัสผ่านได้ ดังนั้น จึงจำได้ง่ายกว่า แต่รูปแบบดังกล่าวก็ลดเอนโทรปีของรหัสผ่านเป็นอย่างมาก ทำให้การโจมตีด้วยกำลังมีประสิทธิภาพยิ่งกว่ามาก ถึงกระนั้น จนถึงเดือนตุลาคม 2005ตุลาคม 2005 เจ้าหน้าที่ของรัฐในสหราชอาณาจักรก็ยังได้คำแนะนำให้ใช้รหัสผ่านในรูปแบบนี้ date = January 2012

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

**ดูเพิ่ม**
 พาสเฟรซ- ฟิชชิง- ช่องโหว่ (คอมพิวเตอร์)- Keystroke logging

**เชิงอรรถและอ้างอิง**

**แหล่งข้อมูลอื่น**
  RFC 4086: Randomness Requirements for Security-  Password Patterns:The next generation dictionary attacks
หมวดหมู่:วิทยาการเข้ารหัสลับ
หมวดหมู่:รหัสผ่าน
หมวดหมู่:การจัดการรหัสผ่าน
หมวดหมู่:ความมั่นคงของระบบคอมพิวเตอร์
หมวดหมู่:ความมั่นคงของเครือข่ายคอมพิวเตอร์
หมวดหมู่:การพิสูจน์ตัวจริงด้วยรหัสผ่าน