Menu
CoddyTech

Salt mới

Thuộc phần Xác thực và bảo mật trong hành trình Node.js của Coddy. Bài học 3 trên 24.

Mọi người có thể chọn cùng một mật khẩu. Salt là dữ liệu ngẫu nhiên được đưa vào khi tạo khóa mật khẩu đã lưu. Salt mới giúp các mật khẩu giống nhau tạo ra những khóa đã lưu khác nhau. Salt được lưu cùng với khóa, không cần giữ bí mật.

const salt = randomBytes(8).toString('hex');
// 8 byte ngẫu nhiên được biểu diễn bằng 16 ký tự thập lục phân

Hãy tạo salt bên trong hàm được gọi cho mỗi mật khẩu mới. Giá trị được tạo một lần khi máy chủ khởi động sẽ bị dùng lại. Bạn đã tạo khóa bằng một salt cố định để luyện tập. Giờ đây, việc lưu mật khẩu cần một salt mới mỗi lần. Ở đây, chỉ luyện tập tạo salt và xem độ dài văn bản của salt là 32 ký tự.

randomBytes sử dụng bộ tạo số ngẫu nhiên mật mã. Math.random() không dành cho các giá trị cần bảo mật. Hãy dùng hàm mật mã đã nhập để tạo salt.

challenge icon

Thử thách

Dễ

Đây là một dự án luyện tập nhỏ. Phần thiết lập đã có sẵn, bạn chỉ chỉnh sửa exercise.js.

Trả về một salt ngẫu nhiên mới gồm 16 byte ở dạng hex trong salt. Chạy và GET /result hai lần: mỗi phản hồi chứa một chuỗi hex gồm 32 ký tự khác nhau. Đừng dùng salt cố định.

Tự làm thử

import { randomBytes } from 'node:crypto';
export function exercise() {
    return { salt: '00000000000000000000000000000000' };
}

Tất cả bài học trong Xác thực và bảo mật

Tự luyện tập: Playground Express