เห็นได้ชัดว่าพวกเขาไม่ได้ตั้งใจจะดูดังนั้นการค้นหาพวกเขาจะเป็นปัญหา
เคล็ดลับหนึ่งที่ฉันใช้ในอดีตคือการแฮชข้อมูลที่เข้ารหัสก่อนที่จะเข้ารหัสและเก็บแฮชในคอลัมน์ที่จัดทำดัชนี แน่นอนมันใช้งานได้เฉพาะเมื่อคุณค้นหามูลค่าทั้งหมด ค่าบางส่วนจะไม่มีแฮชเดียวกัน
คุณอาจขยายเวลานี้ได้โดยสร้างดัชนีแฮชแบบข้อความแบบเต็มหากคุณต้องการ แต่มันอาจซับซ้อนอย่างรวดเร็ว
ภาคผนวก
มีคนแนะนำว่าฉันเพิ่มเชิงอรรถลงในคำตอบของฉันต่อการถกเถียงที่ค่อนข้างยาวในการแชทเกี่ยวกับช่องโหว่ของการโจมตีพจนานุกรมดังนั้นฉันจะพูดถึงความเสี่ยงด้านความปลอดภัยที่อาจเกิดขึ้นกับแนวทางข้างต้น
การโจมตีพจนานุกรม: การโจมตีพจนานุกรมคือเมื่อมีคนแฮชรายการค่าที่ทราบล่วงหน้าล่วงหน้าและเปรียบเทียบการแฮชกับคอลัมน์ที่แฮชของคุณในฐานข้อมูล หากพวกเขาสามารถหาคู่ที่ตรงกันได้อาจเป็นไปได้ว่าค่าที่ทราบนั้นแท้จริงแล้วคือสิ่งที่ถูกแฮช สิ่งนี้มักจะถูกลดทอนลงโดยการเพิ่มค่าด้วยการสุ่ม "เกลือ" ต่อท้ายหรือเสริมเพื่อให้แฮชไม่ตรงกับพจนานุกรม แต่คำตอบข้างต้นไม่สามารถใช้เกลือได้เพราะคุณสูญเสียความสามารถในการค้นหา
การโจมตีครั้งนี้มีอันตรายเมื่อต้องจัดการกับสิ่งต่าง ๆ เช่นรหัสผ่าน: หากคุณสร้างพจนานุกรมแฮชรหัสผ่านยอดนิยมคุณสามารถค้นหาตารางสำหรับค่าแฮชนั้นได้อย่างรวดเร็วและระบุผู้ใช้ที่มีรหัสผ่านดังกล่าวและดึงข้อมูลประจำตัวได้อย่างมีประสิทธิภาพ .
มันมีอันตรายน้อยกว่าสำหรับรายการที่มีระดับความเป็น cardinality สูงเช่น SSN หมายเลขบัตรเครดิต GUID ฯลฯ (แต่มีความเสี่ยงที่แตกต่างกัน [อ่าน: ถูกกฎหมาย] ที่เกี่ยวข้องกับการจัดเก็บเหล่านี้ดังนั้นฉันจึงไม่แนะนำให้เก็บไว้ )
เหตุผลของเรื่องนี้คือเพื่อให้การโจมตีของพจนานุกรมทำงานได้คุณจะต้องสร้างพจนานุกรมที่มีค่าที่เป็นไปได้และแฮชของพวกเขาไว้ล่วงหน้า ในทางทฤษฎีแล้วคุณสามารถสร้างพจนานุกรมของ SSN ที่เป็นไปได้ทั้งหมด (หนึ่งพันล้านแถวโดยสมมติว่าพีชคณิตการจัดรูปแบบทั้งหมดถูกลบออกไปหลายสิบล้านรายการสำหรับบัตรเครดิต) ... แต่นั่นไม่ใช่จุดของการโจมตีด้วยพจนานุกรมและ โดยทั่วไปจะเทียบเคียงได้กับการโจมตีแบบดุร้ายที่คุณกำลังตรวจสอบทุกค่าอย่างเป็นระบบ
นอกจากนี้คุณยังสามารถมองหาเฉพาะ SSN หรือหมายเลขบัตรเครดิตถ้าคุณกำลังพยายามที่จะตรงกับ SSN ให้คน อีกครั้งมักจะไม่ใช่จุดของการโจมตีด้วยพจนานุกรม แต่เป็นไปได้ที่จะทำดังนั้นหากเป็นความเสี่ยงที่คุณต้องหลีกเลี่ยงคำตอบของฉันไม่ใช่ทางออกที่ดีสำหรับคุณ
ดังนั้นคุณมีมัน เช่นเดียวกับข้อมูลที่เข้ารหัสทั้งหมดโดยปกติแล้วจะมีการเข้ารหัสด้วยเหตุผลดังนั้นควรตระหนักถึงข้อมูลของคุณและสิ่งที่คุณพยายามปกป้อง