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