ปัญหาหลักในการสร้างรหัสผ่านแบบแฮชใน JavaScript คือเดาได้ง่าย รหัสผ่านแบบแฮชเป็นเพียงชุดอักขระที่แฮชหรือแปลงเป็นตัวเลขเฉพาะ แล้วจัดเก็บไว้ในคอมพิวเตอร์ของผู้ใช้ ใครก็ตามที่ทราบรหัสผ่านแฮชสามารถเข้าสู่บัญชีผู้ใช้ได้อย่างง่ายดายโดยไม่ต้องจำรหัสผ่านจริง
var password = ""; var salt = ""; function hashPassword(password, salt) { var hash = CryptoJS.SHA256(password + salt); return hash.toString(CryptoJS.enc.Hex); }
รหัสผ่าน var = “”;
บรรทัดนี้สร้างตัวแปรที่เรียกว่ารหัสผ่านและตั้งค่าเท่ากับสตริงว่าง
เกลือ var = “”;
บรรทัดนี้สร้างตัวแปรชื่อเกลือและตั้งค่าเท่ากับสตริงว่าง
ฟังก์ชัน hashPassword (รหัสผ่าน, เกลือ) {
var hash = CryptoJS.SHA256(รหัสผ่าน + เกลือ);
ส่งคืน hash.toString (CryptoJS.enc.Hex);
}
ฟังก์ชันนี้รับพารามิเตอร์สองตัว รหัสผ่านและเกลือ และส่งคืนรหัสผ่านเวอร์ชันแฮชโดยใช้อัลกอริทึม SHA256 และรูปแบบการเข้ารหัส Hex
แฮชรหัสผ่าน
รหัสผ่านแฮชเป็นรหัสผ่านประเภทหนึ่งที่ใช้ฟังก์ชันแฮชเข้ารหัสเพื่อสร้างรหัสผ่านเฉพาะสำหรับผู้ใช้แต่ละคน ฟังก์ชันแฮชรับสตริงอินพุตและสร้างสตริงเอาต์พุตที่มีความยาวคงที่ ซึ่งเรียกว่าค่าแฮช ค่าแฮชจะไม่ซ้ำกันสำหรับแต่ละสตริงอินพุต และไม่เกี่ยวข้องกับสตริงอินพุตดั้งเดิม
ในการสร้างรหัสผ่านแบบแฮช ก่อนอื่นคุณต้องสร้างแฮชแบบเข้ารหัสของข้อมูลรับรองการเข้าสู่ระบบของผู้ใช้ของคุณ คุณสามารถทำได้โดยใช้อัลกอริทึมแฮช MD5 หรือ SHA-1 ขึ้นอยู่กับแพลตฟอร์มที่คุณใช้ ถัดไป คุณต้องจัดเก็บค่าแฮชในตำแหน่งที่ปลอดภัยบนเซิร์ฟเวอร์ของคุณ เมื่อใดก็ตามที่ผู้ใช้ของคุณเข้าสู่ระบบ พวกเขาจะต้องป้อนข้อมูลรับรองการเข้าสู่ระบบลงในแอปพลิเคชันของคุณ จากนั้นใช้ค่าแฮชเพื่อสร้างรหัสผ่านใหม่
ทำงานกับแฮช
ใน JavaScript แฮชถูกใช้เพื่อแสดงอาร์เรย์ ตัวอย่างเช่น โค้ดต่อไปนี้สร้างอาร์เรย์ของสตริงและเก็บไว้ในตัวแปรชื่อ myArray:
myArray = [“ก”, “ข”, “ค”];
คุณยังสามารถใช้แฮชเพื่อแสดงประเภทข้อมูลอื่นๆ ตัวอย่างเช่น รหัสต่อไปนี้สร้างแฮชที่เก็บค่า “1” และ “2”:
แฮช = { 1: “1”, 2: “2” }