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

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

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

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

ในปี2019 ศูนย์ความมั่นคงทางไซเบอร์แห่งชาติสหราชอาณาจักร ได้วิเคราะห์บัญชีรั่วไหลที่เป็นสาธารณะ เพื่อตรวจดูว่าผู้ใช้ใช้คำหรือวลีอะไรเป็นรหัสผ่านมากที่สุด 
ที่นิยมที่สุดก็คือ 123456 ซึ่งถูกแฮ็กมาแล้วถึง  
ที่นิยมเป็นอันดับสองก็คือ 123456789 ซึ่งก็เดาได้ไม่ยากกว่ามาก

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

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

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

 ความถูกต้องของรหัสผ่านที่เดา 
ระบบที่ใช้รหัสผ่านเพื่อพิสูจน์ตัวตนจะต้องตรวจสอบว่ารหัสผ่านที่ให้ถูกต้องหรือไม่ 
ถ้าเก็บรหัสผ่านเปล่าไว้ในไฟล์หรือในฐานข้อมูล ผู้โจมตีที่เข้าถึงระบบได้ก็อาจสามารถเก็บรหัสผ่านของผู้ใช้ได้ทั้งหมด 
ทำให้เข้าถึงบัญชีในระบบได้ทั้งหมด และบางที ก็ระบบอื่นๆ ด้วยที่ผู้ใช้ใช้รหัสผ่านเช่นเดียวกันหรือคล้ายๆ กัน 
วิธีลดความเสี่ยงอย่างหนึ่งก็คือการเก็บแต่ค่าแฮช (cryptographic hash) ของรหัสผ่านแทนที่จะเก็บรหัสผ่านเปล่าเอง 
ค่าแฮชที่ทำตามมาตรฐานต่างๆ เช่น จากกลุ่ม Secure Hash Algorithm (SHA) จะคำนวณกลับคืนเป็นรหัสผ่านดั้งเดิมได้ยากมาก ดังนั้นผู้โจมตีที่เพียงแต่ได้ค่าแฮช จึงไม่สามารถบอกรหัสผ่านดั้งเดิมโดยทันที 
แต่การมีค่าแฮชก็จะอาจทำให้แฮ็กรหัสผ่านได้เมื่อทำออฟไลน์ 
มีโปรแกรมเจาะรหัสผ่านที่สามารถทดสอบรหัสได้เป็นจำนวนมากโดยคำนวณค่าแฮชที่เป็นเป้าหมาย 

เทคโนโลยีได้พัฒนาขึ้นเรื่อยๆ ดังนั้น การเดารหัสผ่านก็เร็วขึ้นเรื่อยๆ เช่นกัน 
ยกตัวอย่างเช่นในปี2010 สถาบันการวิจัยจอร์เจียเทคได้พัฒนาวิธีการเจาะรหัสผ่านที่เร็วยิ่งขึ้นมากโดยใช้หน่วยประมวลผลกราฟิกส์เป็นตัวคำนวณ
ในปี2011 ก็เริ่มมีผลิตภัณฑ์ที่อ้างว่าสามารถทดสอบรหัสผ่านได้ถึง บนคอมพิวเตอร์ตั้งโต๊ะธรรมดาโดยใช้หน่วยประมวลผลกราฟิกส์ชั้นสูงที่มีในตอนนั้นElcomsoft.com , ElcomSoft Password Recovery Speed table, NTLM passwords, Nvidia Tesla S1070 GPU, accessed 2011-02-01
อุปกรณ์ที่ว่าสามารถเจาะรหัสผ่านยาว 6 ตัวอักษรและมีอักษรตัวเล็กหรือตัวใหญ่เพียงอย่างเดียวโดยเสร็จในวันเดียว 
และยังสามารถแจกกระจายงานไปยังคอมพิวเตอร์จำนวนมากเพื่อเพิ่มความเร็ว โดยจะเร็วตามจำนวนคอมพิวเตอร์ที่มีหน่วยประมวลผลกราฟิกส์ในระดับเดียวกัน 

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

สถานการณ์อีกอย่างหนึ่งที่ทำให้เดารหัสผ่านได้อย่างรวดเร็วก็คือเมื่อใช้รหัสผ่านเป็นกุญแจเข้ารหัสลับ (cryptographic key)
ผู้โจมตีจึงตรวจสอบดูได้ว่า รหัสผ่านที่เดาสามารถถอดรหัสลับของข้อมูลได้หรือไม่ 
เช่น มีผลิตภัณฑ์หนึ่งที่อ้างว่าสามารถตรวจสอบรหัสผ่านวายฟายชนิด WPA PSK ได้ถึง Elcomsoft Wireless Security Auditor, HD5970 GPU accessed 2011-02-11

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

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

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

 รหัสผ่านสุ่ม 

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

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

รหัสผ่านที่สร้างด้วยกระบวนการเลือกสัญญลักษณ์ต่อๆ กันโดยสุ่ม มีความยาว L โดยเลือกจากกลุ่มสัญลักษณ์จำนวน N ตัว จะสามารถสร้างรหัสผ่านได้อย่างมาก NL ตัว
ดังนั้นไม่ว่าจะเพิ่มค่า L หรือ N ก็จะทำให้รหัสผ่านที่สร้างแข็งแกร่งยิ่งขึ้น 
ความแข็งแกร่งเมื่อวัดโดย ก็คือ (log2) ของจำนวนรหัสผ่านที่เป็นไปได้ โดยสมมุติว่า สัญลักษณ์แต่ละตัวในรหัสผ่านจะเลือกอย่างเป็นอิสระ 
ดังนั้น เอนโทรปีข้อมูล H ก็จะคำนวณได้ด้วยสูตร

H มีหน่วยเป็นบิตSchneier, B: Applied Cryptography, 2e, page 233 ff. John Wiley and Sons.
สำหรับนิพจน์ช่องสุดท้าย log จะมีฐานอะไรก็ได้

{| class="wikitable" style="text-align: right;"
|+ ค่าเอนโทรปีสำหรับสัญลักษณ์หนึ่งตัวสำหรับสัญลักษณ์ชุดต่างๆ
	! ชุดสัญลักษณ์ || จำนวนสัญลักษณ์ในชุด (N) || เอนโทรปี/ตัว(H)
|-
	| align = left|ตัวเลขอาหรับ (0-9) (เช่น รหัสพิน) || 10 ||  บิต
|-
	| align = left|เลขฐานสิบหก (0-9, A-F) (เช่น กุญแจ WEP) || 16 || 4.000 บิต
|-
	| align = left|ชุดตัวอักษรละตินที่ไม่ไวต่ออักษรใหญ่เล็ก (a-z หรือ A-Z) || 26 ||  บิต
|-
	| align = left|ชุดตัวอักษรละตินและตัวเลขที่ไม่ไวต่ออักษรใหญ่เล็ก (a-z หรือ A-Z, 0-9) || 36 ||  บิต
|-
	| align = left|ชุดตัวอักษรละตินที่ไวต่ออักษรใหญ่เล็ก (a-z, A-Z) || 52 ||  บิต
|-
	| align = left|ชุดตัวอักษรละตินและตัวเลขที่ไวต่ออักษรใหญ่เล็ก (a-z, A-Z, 0-9) || 62 ||  บิต
|-
	| align = left|ชุดอักขระแอสกีที่แสดงผลยกเว้นอักขระว่าง|| 94 ||  บิต
|-
	| align = left|ชุดอักขระเพิ่มเติมละติน-1 || 94 ||  บิต
|-
	| align = left|ชุดอักขระแอสกีที่แสดงผล || 95 ||  บิต
|-
	| align = left|ชุดอักขระแอสกีขยายที่แสดงผล || 218 ||  บิต
|-
	| align = left|เลข 8 บิต (0-255 หรือ 1 ไบต์) || 256 ||  บิต
|-
	| align = left|รายการคำไดซ์แวร์ || 7,776 ||  บิต/คำ
|}
ข้อมูล 1ไบต์มักจะเขียนเป็นเลขฐานสิบหก 2ตัว

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

โดย  หมายถึงฟังก์ชันเพดาน คือ
การปัดเศษขึ้นให้เลขเป็นจำนวนเต็ม

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

+ รหัสผ่านที่สร้างโดยสุ่มจริง ๆ มีสัญลักษณ์ยาว L ตัวเพื่อให้ได้เอนโทรปี H โดยชุดมีสัญลักษณ์ N ตัว	รหัสผ่านมีเอนโทรปี H  ตัวเลขอาหรับ เลขฐานสิบหก ไม่ไวต่ออักษรใหญ่เล็ก  ไวต่ออักษรใหญ่เล็ก   อักขระแอสกีทั้งหมด  อักขระแอสกีขยาย รายการคำไดซ์แวร์	 ชุดอักษรละติน ชุดตัวอักษรละตินและตัวเลข  ชุดอักษรละติน  ชุดตัวอักษรละตินและตัวเลข ที่แสดงผล	 8 บิต (1 ไบต์)  3  2  2  2  2  2  2  2  1 คำ	 32 บิต (4 ไบต์)  10  8  7  7  6  6  5  5  3 คำ	 40 บิต (5 ไบต์)  13  10  9  8  8  7  7  6  4 คำ	 64 บิต (8 ไบต์)  20  16  14  13  12  11  10  9  5 คำ	 72 บิต (9 ไบต์)  23  18  16  14  13  13  11  10  6 คำ	 80 บิต (10 ไบต์)  25  20  18  16  15  14  13  11  7 คำ	 96 บิต (12 ไบต์)  29  24  21  19  17  17  15  13  8 คำ	 128 บิต (16 ไบต์)  39  32  28  25  23  22  20  17  10 คำ	 160 บิต (20 ไบต์)  49  40  35  31  29  27  25  21  13 คำ	 192 บิต (24 ไบต์)  58  48  41  38  34  33  30  25  15 คำ	 224 บิต (28 ไบต์)  68  56  48  44  40  38  35  29  18 คำ	 256 บิต (32 ไบต์)  78  64  55  50  45  43  39  33  20 คำ

 รหัสผ่านที่มนุษย์สร้าง 
ปกติรู้ได้เลยว่ามนุษย์สร้างรหัสผ่านให้มีเอนโทรปีอันสมควรได้แย่มาก
งานศึกษากับคนครึ่งล้านประเมินว่าเอนโทรปีโดยเฉลี่ยของรหัสผ่านอยู่ที่ 40.54บิต

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

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

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

 การใช้งานได้และการทำให้เกิดผล 
เพราะคีย์บอร์ดในประเทศต่างๆ อาจจะต่างๆ กัน ดังนั้น ชุดอักขระแอสกีที่แสดงผลได้ 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บิตโดยใช้กำลัง
แต่คอมพิวเตอร์ควอนตัมจะสามารถทำได้หรือไม่ก็ยังไม่ชัดเจน แม้การวิเคราะห์ทางทฤษฎีแสดงว่าอาจเป็นไปได้

 รหัสผ่านที่เข้มแข็ง 
 แนวทางสามัญ 
แนวทางในการเลือกรหัสผ่านที่ดีปกติจะออกแบบให้เดารหัสผ่านได้ยากแม้เมื่อผู้โจมตีจะรู้ว่าผู้ใช้ได้สร้างรหัสผ่านอย่างไร
แนวทางสามัญที่องค์กรต่างๆ เสนอรวมทั้งMicrosoft Corporation, Strong passwords: How to create and use them Bruce Schneier, Choosing Secure Passwords Google, Inc., How safe is your password? University of Maryland, Choosing a Good Password 
 ทั่วไปแนะนำให้ตั้งรหัสผ่านที่ยาวน้อยสุด 8ตัวอักษร ผู้เชี่ยวชาญความมั่นคงทางไซเบอร์ของสหรัฐและสหราชอาณาจักร แนะนำให้ใช้รหัสผ่านที่ยาวและจำได้ง่าย แทนที่จะใช้รหัสสั้นแต่มีอักษรซับซ้อน 
 สร้างรหัสผ่านแบบสุ่มเมื่อเป็นไปได้ 
 หลีกเลี่ยงรหัสผ่านเดียวกันที่ใช้ซ้ำๆ (เช่น กับบัญชีหลายบัญชี และ/หรือระบบหลายระบบ)
 เลี่ยงตัวอักษรซ้ำๆ เลี่ยงตัวอักษรตามรูปแบบของคีย์บอร์ด การใช้คำในพจนานุกรม และการใช้ตัวอักษรและตัวเลขที่เป็นลำดับ
 เลี่ยงการใช้ข้อมูลที่สัมพันธ์กับผู้ใช้ที่ปรากฏแล้วหรือจะปรากฏเป็นสาธารณะ เช่นชื่อผู้ใช้ ชื่อของบรรพบุรุษ และวันที่ 
 เลี่ยงการใช้ข้อมูลที่เพื่อนร่วมงานหรือว่าคนที่รู้จักอาจจะรู้เกี่ยวกับผู้ใช้ เช่นชื่อญาติ ชื่อสัตว์เลี้ยง ชื่อคนรักทั้งปัจจุบันและอดีต หรือข้อมูล เช่น หมายเลขบัตรประชาชน ชื่อบรรพบุรุษ หรือวันที่ 
 เลี่ยงรหัสผ่านผสมที่เอาส่วนประกอบอันอ่อนแอดังที่กล่าวมาแล้วมาผสมแบบง่ายๆ

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

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

เว็บไซต์หรือคีย์บอร์ดอาจจำกัดชุดอักขระที่ใช้ได้กับรหัสผ่านe.g. for a keyboard with only 17 nonalphanumeric characters, see one for a BlackBerry phone in an enlarged image  in support of Sandy Berger, BlackBerry Tour 9630 (Verizon) Cell Phone Review, in Hardware Secrets (August 31, 2009) , both as accessed January 19, 2010. That some websites don’t allow nonalphanumerics is indicated by Kanhef, Idiots, For Different Reasons (June 30, 2009) (topic post) , as accessed January 20, 2010.

 ตัวอย่างรหัสผ่านที่อ่อนแอ 
เหมือนกับวิธีป้องกันความปลอดภัยอื่นๆ รหัสผ่านจะแข็งแกร่งไม่เท่ากัน 
บางรหัสก็จะอ่อนแอกว่า
ยกตัวอย่างเช่น การแฮ็กคำในพจนานุกรม กับการแฮ็กคำที่ทำให้ยุ่งเหยิงขึ้นบ้าง (เช่น แทนที่อักษรด้วยตัวเลขซึ่งเป็นวิธีการที่สามัญอย่างหนึ่ง)
อาจจะต้องใช้เวลาเพิ่มขึ้นเพียงไม่กี่วินาที จึงไม่ได้เพิ่มความแข็งแกร่งอะไร 
ตัวอย่างด้านล่างแสดงวิธีการสร้างรหัสผ่านที่อ่อนแอซึ่งล้วนแต่มีรูปแบบง่ายๆ ทำให้ได้รหัสผ่านที่มีเอนโทรปีต่ำ ซึ่งสามารถเจาะได้ง่ายๆ
 รหัสผ่านโดยปริยาย (ที่หมายให้เปลี่ยนเมื่อติดตั้งระบบ) เช่น 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 (ภาษาจีน)
 ข้อมูลเกี่ยวกับบุคคลเช่น เลขทะเบียนรถ เลขบัตรประชาชน เบอร์โทรศัพท์ทั้งปัจจุบันและอดีต หมายเลขนักเรียนนักศึกษา ที่อยู่ปัจจุบัน ที่อยู่ในอดีต วันเกิด ทีมกีฬา ชื่อ/ชื่อเล่น/วันเกิดของญาติ/สัตว์เลี้ยง ทั้งหมดสามารถเจาะได้ง่ายๆ หลังจากตรวจดูรายละเอียดของบุคคล 
 วันที่ เพราะมีรูปแบบที่ทำให้รหัสผ่านอ่อนแอ 
 ชื่อสถานที่ต่างๆ ที่รู้จักกันดีเช่น นิวยอร์ก เทกซัส จีน ลอนดอน
 ชื่อยี่ห้อ คนดัง ทีมกีฬา กลุ่มนักดนตรี รายการทีวี ภาพยนตร์
 รหัสผ่านสั้นๆ แม้จะไม่มีจุดอ่อนดังกล่าว แต่ถ้าสั้นเกินไปก็จะแฮ็กได้ง่าย 

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

 แนวทางรหัสผ่านใหม่ 
บทความปี2012 ในวารสารสมาคมคอมพิวเตอร์เอซีเอ็มเน้นให้ใช้ตัวอักษรตัวเล็ก ตัวใหญ่ และตัวเลข มีอักษร 8ตัวหรือยิ่งกว่า
เพราะรหัสผ่านดังว่าสามารถทนการพยายามเดาเป็น ได้นานถึง 252วัน 
แต่จริงๆ ถ้าใช้หน่วยประมวลผลกราฟิกส์ในเวลานั้นทำการ ก็จะใช้เวลาเพียงแค่ โดยมีอัตราเดารหัสผ่านที่  
ส่วนรหัสผ่านที่ยาว ก็จะสามารถทนการพยายามเดาได้ถึง 900,000ปี

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

 นโยบายรหัสผ่าน 

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

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

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

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

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

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

 วิธีการจำ 
นโยบายรหัสผ่านบางครั้งจะแนะนำวิธีการจำรหัสผ่าน 
 ให้หาวลีช่วยจำแล้วใช้สร้างรหัสผ่าน ซึ่งเกือบจะเหมือนสุ่มแต่ก็ยังจำได้ง่าย เช่นการใช้อักษรตัวแรกของคำแต่ละคำในวลีที่จำได้ง่าย งานวิจัยประเมินว่าความแข็งแกร่งของรหัสผ่านดังว่าอยู่ที่ประมาณ 3.7บิตต่ออักษร เทียบกับ 6.6บิตต่ออักษรของรหัสผ่านที่เลือกอักษรโดยสุ่มจากชุดอักขระแอสกีที่แสดงผล วลีที่ตลกหรือเหลวไหลอาจจะจำได้ง่ายกว่าMnemonic Devices (Indianapolis, Ind.: Bepko Learning Ctr., University College), as accessed January 19, 2010  วิธีอีกอย่างเพื่อสร้างรหัสผ่านสุ่มและจำได้ง่ายก็คือใช้คำสุ่ม (เช่น ) หรือพยางค์สุ่มจากรายการ
 การตั้งเรื่องช่วยจำรหัสผ่านRemembering Passwords (ChangingMinds.org) , as accessed January 19, 2010 โดยไม่ต้องเป็นเรื่องที่สมเหตุสมผล เพียงแต่ให้จำได้ ซึ่งช่วยให้ได้รหัสผ่านที่เป็นสุ่มจริงๆ 
 การสร้างรหัสผ่านโดยเป็นรูป คืออาศัยลำดับแป้นพิมพ์ที่กด ไม่ต้องใส่ใจว่าเป็นตัวอักษรอะไร เช่น !qAsdE#2 มีรูปเป็นสำหรับคีย์บอร์ดสหรัฐ วิธีนี้มีชื่อว่า PsychoPass แต่รหัสผ่านดังกล่าวก็แข็งแกร่งน้อยกว่าที่นับตามจำนวนอักษร เพราะอักษรแต่ละตัวจริงๆ ไม่ได้เป็นอิสระจากตัวก่อน อนึ่ง ลำดับอักษรดังว่าก็มักจะรวมอยู่ในพจนานุกรมรหัสผ่าน แต่นักวิจัยก็ได้เสนอวิธีการปรับปรุงวิธีนี้ให้ดีขึ้น  
 การใช้รูปแบบรหัสผ่าน แต่ไม่ว่าจะเป็นรูปแบบใดๆ ก็จะทำให้เดาได้ง่ายขึ้น ไม่ว่าจะเดาโดยระบบอัตโนมัติหรือไม่ 
 ยกตัวอย่างเช่นมีรูปแบบรหัสผ่านที่ใช้อักษรโรมันโดยไม่ไวตัวเล็กตัวใหญ่ คือ พยัญชนะ สระ พยัญชนะ พยัญชนะ สระ พยัญชนะ ตัวเลข ตัวเลข (เช่น pinray45) รูปแบบการสลับพยัญชนะกับสระหมายให้ออกเสียงรหัสผ่านได้ ดังนั้น จึงจำได้ง่ายกว่า แต่รูปแบบดังกล่าวก็ลดเอนโทรปีของรหัสผ่านเป็นอย่างมาก ทำให้การโจมตีด้วยกำลังมีประสิทธิภาพยิ่งกว่ามาก ถึงกระนั้น จนถึงเดือนตุลาคม 2005ตุลาคม 2005 เจ้าหน้าที่ของรัฐในก็ยังได้คำแนะนำให้ใช้รหัสผ่านในรูปแบบนี้

 โปรแกรมจัดการรหัสผ่าน 

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

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

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

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