# การเจาะรหัสผ่าน
ในเรื่องการวิเคราะห์รหัสลับและความมั่นคงคอมพิวเตอร์ การเจาะรหัสผ่าน 

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

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

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

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

สำหรับแฮชรหัสผ่านบางอย่าง โปรแกรมที่ทำงานโดยใช้หน่วยประมวลผลกลางทั่วไปของคอมพิวเตอร์ตั้งโต๊ะธรรมดาสามารถตรวจสอบรหัสผ่านเป็น 
แต่โปรแกรมที่ทำงานโดยใช้หน่วยประมวลผลกราฟิกส์อาจตรวจสอบรหัสผ่านได้ถึงเป็นoclHashcat-lite - advanced password recovery. Hashcat.net. Retrieved on January 31, 2013.Alexander, Steven. (June 20, 2012) The Bug Charmer: How long should passwords be?. Bugcharmer.blogspot.com. Retrieved on January 31, 2013.Cryptohaze Blog: 154 Billion NTLM/sec on 10 hashes. Blog.cryptohaze.com (July 15, 2012). Retrieved on January 31, 2013.John the Ripper benchmarks. openwall.info (March 30, 2010). Retrieved on January 31, 2013.
อัตราการเดาจะขึ้นอยู่กับฟังก์ชันรหัสลับที่ระบบใช้เพื่อสร้างค่าแฮชรหัสผ่าน 
ฟังก์ชันที่เหมาะสม เช่น bcrypt จะดีกว่าฟังก์ชันธรรมดาๆ เช่น MD5 หรือ SHA เป็นหลายเท่า
เช่น รหัสผ่านที่ผู้ใช้เลือก ยาว 8ตัวอักษร มีตัวเลข ตัวเล็กตัวใหญ่และสัญลักษณ์ มีการไม่ให้ใช้รหัสผ่านที่เลือกใช้กันอย่างสามัญหรือที่มีอยู่ในพจนานุกรม อาจมีความแข็งแกร่งถึง 30บิตตามสถาบันมาตรฐานและเทคโนโลยีแห่งชาติสหรัฐ (NIST) ซึ่งจริงๆ ชี้ว่าซับซ้อนพอให้สร้างรหัสผ่านเป็นพันล้าน (230) รหัสเท่านั้น
รหัสผ่านเช่นนี้สามารถเจาะได้ภายในวินาทีๆ ถ้าใช้ธรรมดา 
และเมื่อใช้คอมพิวเตอร์ตั้งโต๊ะธรรมดาจำนวนมากให้ทำงานร่วมกัน ซึ่งสามารถทำได้ด้วย botnet ก็จะสามารถเจาะได้เร็วกว่ามาก 
ในปี2002 distributed.net สามารถเจาะกุญแจ RC5 ขนาด 64บิตได้ภายใน 4ปี โดยใช้คอมพิวเตอร์ร่วมกัน โดยทำงานไม่พร้อมกัน ซึ่งสามารถทดสอบกุญแจได้ถึง 

หน่วยประมวลผลกราฟิกส์ (จีพียู) สามารถเจาะรหัสผ่านได้เร็วเพิ่มขึ้นเป็น ตัวเทียบกับคอมพิวเตอร์ทั่วไปเมื่อใช้เจาะค่าแฮช
ยกตัวอยา่งเช่นในปี2011 มีผลิตภัณฑ์ที่อ้างว่าสามารถตรวจสอบรหัสผ่านของ NTLM ได้ถึง  โดยใช้เครื่องคอมพิวเตอร์ธรรมดาที่มีหน่วยประมวลผลกราฟิกส์ชั้นสูง
อุปกรณ์ดังว่าสามารถเจาะรหัสผ่านที่มีอักษรตัวเล็กอย่างเดียวหรือตัวใหญ่อย่างเดียวยาว 10ตัวอักษรภายในวันเดียว 
เมื่อแจกกระจายให้ทำด้วยคอมพิวเตอร์เป็นจำนวนมาก ก็จะเพิ่มอัตราการทดลองตามจำนวนคอมพิวเตอร์ที่มีหน่วยประมวลผลกราฟิกส์ชั้นเดียวกัน 
แต่ก็มีที่คำนวณได้ช้าหรือแม้แต่ออกแบบโดยเฉพาะๆ ให้คำนวณได้ช้าเมื่อใช้จีพียู 
เช่น DES, Triple DES, bcrypt, scrypt และ Argon2

จีพียูได้พัฒนาให้ไวขึ้นอย่างรวดเร็ว จึงเพิ่มประสิทธิภาพการเจาะโดยใช้กำลังได้อย่างมาก
ในปี2012 มีคลัสเตอร์จีพียู 25ตัวที่สามารถเดารหัสผ่าน NTLM ได้  จึงทำให้ตรวจสอบรหัสผ่านได้  รหัสผ่านภายใน  ซึ่งพอเพียงเพื่อเจาะรหัสผ่านยาว 8ตัวมีอักษรตัวเล็กตัวใหญ่ ตัวเลข และสัญลักษณ์ เป็นรูปแบบรหัสผ่านที่ใช้กันอย่างสามัญในบริษัทใหญ่ๆ 
ระบบใช้โปรแกรม ocl-Hashcat โดยทำการบน Virtual OpenCL ซึ่งก็ทำการบนระบบปฏิบัติการลินุกซ์อีกที
ระบบสามารถ "เจาะรหัสผ่าน 6.5 ล้านรหัสของผู้ใช้ลิงกต์อินในอัตรา ทั้งหมด"

แต่สำหรับขั้นตอนวิธีแฮชบางอย่าง ทั้งซีพียูและจีพียูต่างก็ใช้ได้ไม่ดี 
ดังนั้นจึงต้องใช้ฮาร์ดแวร์ที่ออกแบบโดยเฉพาะๆ
ซึ่งใช้เทคโนโลยีหรือเอสิก (ASIC)
แต่การพัฒนาเทคโนโลยีทั้งสองอย่างก็ซับซ้อนและมีค่าใช้จ่ายสูงมาก
ทั่วไปแล้วเอฟพีจีเออาจจะใช้ได้เมื่อใช้เป็นจำนวนน้อย เทียบกับที่ใช้ได้เมื่อใช้เป็นจำนวนมาก โดยใช้พลังงานอย่างมีประสิทธิภาพกว่าและก็เร็วกว่าด้วย 
ในปี1998 มูลนิธิพรมแดนอิเล็กทรอนิกส์ (EFF) ได้สร้างเครื่องเจาะที่ออกแบบโดยเฉพาะด้วยเอสิก
เครื่องชื่อว่า Deep Crack นี้สามารถเจาะกุญแจดีอีเอสขนาด 56บิตภายใน  โดยสามารถทดลองกุญแจเข้ารหัส 
ในปี2017 มีเอกสารรั่วซึ่งแสดงว่า มีโปรเจกต์ทางทหารที่ใช้เอสิก 
ซึ่งอาจสามารถถอดรหัสลับทางอินเทอร์เน็ตที่เข้ารหัสลับชนิดที่อ่อนแอกว่า
เริ่มตั้งแต่ปี2019 สามารถใช้โปรแกรม John the Ripper เพื่อเจาะรหัสผ่านที่ใช้ขั้นตอนวิธีบางอย่างอาศัยเทคโนโลยี
ปัจจุบันมีบริษัทเอกชนที่ใช้เทคโนโลยีเช่นนี้เพื่อเจาะรหัสผ่าน

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

เช่นเดียวกัน ข้อบังคับของรหัสผ่านที่เข้มงวดยิ่งขึ้น เช่น "ต้องมีตัวอักษรตัวใหญ่ตัวเล็ก และตัวเลข" หรือ "ให้เปลี่ยนรหัสผ่านทุกๆ เดือน" ก็จะทำให้ผู้ใช้มีโอกาสหาวิธีหลีกเลี่ยงข้อบังคับเหล่านั้นManaging Network Security. Fred Cohen & Associates. All.net. Retrieved on January 31, 2013.

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

การให้จำรหัสผ่านที่ประกอบด้วย "อักษรตัวเล็กตัวใหญ่" จะเหมือนกับให้จำลำดับเลขศูนย์เลขหนึ่ง คือจำได้ยาก แต่เจาะได้ยากกว่าไม่มาก (เช่นสำหรับรหัสผ่านที่มีอักษร 7ตัว จะยากขึ้น 128เท่า แต่น้อยกว่านั้นถ้าผู้ใช้ใช้อักษรตัวใหญ่ตัวเดียว)
การบังคับให้ใช้ "ทั้งตัวอักษรและตัวเลข" มักจะได้การแทนอักษรที่เดาได้ง่ายๆ เช่น 'E' → '3' และ 'I' → '1' ที่ผู้โจมตีก็รู้จักดี 
เช่นเดียวกัน การพิมพ์รหัสผ่านโดยใช้แป้นพิมพ์แถวเลื่อนขึ้นไป ก็เป็นวิธีที่ผู้โจมตีรู้จักดีเช่นกัน 

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

 เหตุการณ์ที่เกิด 
ในกลางปี1998 ศูนย์ประสานงานการตอบสนองเรื่องฉุกเฉินทางคอมพิวเตอร์สหรัฐ (CERT) รายงานว่า มีผู้โจมตีที่ได้รหัสผ่านซึ่งเข้ารหัสลับไป 186,126 รหัส 
โดยพบว่า ถูกเจาะไปเรียบร้อยแล้ว

เมื่อท้ายปี2009 เว็บไซต์ Rockyou.com ถูกแฮ็กโดยผู้โจมตีขโมยเอารหัสผ่านไปได้ 
แล้วเผยแพร่รายการรหัสผ่านทั้งหมดทางแม้จะไม่มีข้อมูลระบุบุคคล
รหัสผ่านดั้งเดิมได้เก็บไว้เปล่าๆ ในฐานข้อมูลและถูกดึงออกมาโดยวิธี SQL injection
ต่อมาจึงมีการวิเคราะห์ความแข็งแกร่งของรหัสผ่าน
สิ่งที่พบหลักๆ ก็คือ 
 ผู้ใช้ประมาณ เลือกรหัสผ่านยาวน้อยกว่า 7ตัวอักษร 
 ผู้ใช้เกือบ เลือกรหัสผ่านจากชุดตัวอักษรกับตัวเลขที่จำกัด 
 ผู้ใช้เกือบครึ่งเลือกชื่อ คำแสลง คำจากพจนานุกรม หรือรหัสผ่านที่สร้างอย่างอ่อนแอ เช่น เป็นตัวเลขตามลำดับ และ/หรือใช้แป้นพิมพ์ที่อยู่ใกล้ๆ กัน ที่นิยมที่สุดก็คือ “123456”

เมื่อกลางปี2011 พันธมิตรเนโทถูกแฮ็กโดยข้อมูลผู้ใช้ร้านอีบุ๊กรั่วไหลออกไป 11,000ราย ข้อมูลรวมทั้งชื่อ นามสกุล ชื่อผู้ใช้ และรหัสผ่าน 
การแฮ็กเป็นส่วนของปฏิบัติการ AntiSec ซึ่งเป็นขบวนการที่ได้รับการร่วมมือจากกลุ่มนักเลงคอมพิวเตอร์ต่างๆ รวมทั้ง อะนอนิมัสและ LulzSec

เมื่อกลางปีเดียวกัน บริษัทให้คำปรึกษาอเมริกัน Booz Allen Hamilton ซึ่งทำงานเพื่อเดอะเพนตากอนมิใช่น้อย มีเซิร์ฟเวอร์ถูกแฮ็กโดยแล้วข้อมูลถูกเผยแพร่ในวันเดียวกัน
"เหตุการณ์ข้อมูลรั่วที่ตั้งชื่อว่า 'วันจันทร์วันล่มสลายของทหาร' มีข้อมูลบัญชีของเจ้าหน้าที่ จากหน่วยงานต่างๆ รวมทั้งหน่วยบัญชาการทหารสหรัฐภาคกลาง หน่วยบัญชาการยุทธการพิเศษสหรัฐ เหล่านาวิกโยธินสหรัฐ หน่วยต่างๆ ของกองทัพอากาศสหรัฐ กระทรวงความมั่นคงแห่งมาตุภูมิสหรัฐ กระทรวงการต่างประเทศสหรัฐ และข้อมูลที่ดูเหมือนจะเป็นของผู้รับเหมาฝ่ายเอกชน"
รหัสผ่านพบว่าใช้วิธีแฮช SHA-1 ที่ไม่ใส่ซอลต์ ต่อมาการวิเคราะห์ภายหลังพบว่า มีเจ้าหน้าที่ทหารที่ใช้รหัสผ่านที่อ่อนแอมากเช่น "1234"

ในเดือนเดียวกัน บริการอีเมลไมโครซอฟต์ฮอตเมลจึงเลิกไม่ให้ใช้รหัสผ่าน "123456"

เมื่อกลางปี2015 ข้อมูลผู้ใช้ของบริการจัดหาคู่ที่สนับสนุนให้คนแต่งงานแล้วมีชู้ Ashley Madison ถูกแฮ็ก
รหัสผ่านได้เก็บไว้โดยใช้ทั้งที่ค่อนข้างเข้มแข็งคือ bcrypt และที่อ่อนแอคือ MD5
ต่อมากลุ่มวิจัยรหัสผ่านคือ CynoSure Prime จึงเจาะไปได้ 11 ล้านรหัสจากแฮชวิธีหลัง

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

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

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

ระบบยูนิกซ์ปัจจุบันได้เลิกใช้ฟังก์ชันการแฮชรหัสผ่านธรรมดา คือ  
ที่ทำให้เกิดผลด้วย DES แล้วแทนที่ด้วยฟังก์ชันที่แข็งแกร่งกว่าคือ ,  และ A Future-Adaptable Password Scheme. Usenix.org (March 13, 2002). Retrieved on January 31, 2013.
ระบบอื่นๆ ก็เริ่มเปลี่ยนการแฮชรหัสผ่านด้วยเช่นกัน
ยกตัวอย่างเช่น Cisco IOS ดั้งเดิมใช้ขั้นตอนวิธี Vigenère cipher ที่ผันกลับได้เพื่อแฮชรหัสผ่าน แต่ปัจจุบันก็ใช้ md5-crypt ร่วมกับซอลต์ขนาด 24บิตเมื่อใช้คำสั่งงาน MDCrack FAQ 1.8. None. Retrieved on January 31, 2013.
วิธีการใหม่ๆ ล้วนแต่ใช้ค่าซอลต์ขนาดใหญ่ซึ่งป้องกันผู้โจมตีไม่ให้เจาะรหัสผ่านเดียวกันหลายๆ รหัสได้พร้อมๆ กัน 
ขั้นตอนวิธีเหล่านี้ยังใช้เวลามากกว่า ซึ่งเพิ่มเวลาในการเจาะรหัสผ่านแบบได้อย่างสำคัญPassword Protection for Modern Operating Systems. Usenix.org. Retrieved on January 31, 2013.

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

ในปี2013 มีการแข่งขันวิธีการแฮชรหัสผ่านเพื่อเลือกเป็นมาตรฐานใหม่
โดยนักวิทยาการเข้ารหัสลับได้เลือก Argon2 เป็นมาตรฐานในปี2015 ส่วนสถาบันมาตรฐานและเทคโนโลยีแห่งชาติสหรัฐ (NIST) แนะนำให้ใช้ขั้นตอนวิธี Balloon
ทั้งสองนี้ล้วนแต่ใช้ความจำมาก 

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

 ซอฟต์แวร์ 

มีซอฟต์แวร์เจาะรหัสผ่านเป็นจำนวนมาก แต่ที่นิยมที่สุดก็คือ
Aircrack-ng, Cain & Abel, John the Ripper, Hashcat, Hydra, DaveGrohl และ ElcomSoft
ยังมีโปรแกรมที่ใช้สืบหาหลักฐานบนคอมพิวเตอร์เพื่อการฟ้องคดี ซึ่งมักจะมีลูกเล่นเกี่ยวกับการเจาะรหัสผ่านหลายวิธีด้วย
วิธีที่ใช้ได้ผลมากที่สุดก็คือการโจมตีโดยใช้กำลังและการโจมตีโดยพจนานุกรม

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