Menu
CoddyTech

Membuat Kunci Kata Sandi

Termasuk bagian Autentikasi dan Keamanan dalam perjalanan Node.js di Coddy. Pelajaran 2 dari 24.

Kunci kata sandi dihitung dari kata sandi dan salt. Tidak seperti encoding, perhitungan ini tidak dirancang agar bisa dibalik. Scrypt membuat tebakan kata sandi menjadi mahal dengan mengharuskan pekerjaan untuk setiap percobaan. Dengan kata sandi, salt, dan pengaturan derivasi yang sama, termasuk panjang kunci, kunci yang dihasilkan akan selalu sama. Kunci turunan ini umumnya disebut hash kata sandi.

const key = await scryptAsync('invite 4821', 'example-only', 16);
return key.toString('hex');

Argumen ketiga adalah panjang kunci dalam byte. Helper yang disediakan menggunakan promisify untuk mengubah scrypt berbasis callback milik Node menjadi fungsi yang mengembalikan promise. Kamu bisa menggunakan await seperti saat membaca file. Salt tetap dalam latihan ini memungkinkanmu membandingkan hasil, sedangkan penyimpanan kata sandi yang sebenarnya menggunakan salt acak yang baru.

Latihan berikutnya membuat salt acak baru yang diperlukan saat menyimpan kata sandi baru.

challenge icon

Tantangan

Mudah

Ini adalah proyek latihan kecil. Penyiapannya sudah disediakan, edit hanya exercise.js.

Selesaikan fungsi ini: turunkan kunci 32 byte dari kata sandi dan salt yang diberikan, lalu kembalikan teks heksadesimalnya dalam key. Kirim POST {"password":"practice","salt":"fixed-for-this-exercise"} dua kali ke /result: kunci 64 karakter yang sama akan muncul. Ubah salah satu input dan kuncinya akan berubah.

Coba sendiri

import { scryptAsync } from './crypto.js';
export async function exercise({ password, salt }) {
    return { key: password };
}

Semua pelajaran di Autentikasi dan Keamanan

Latihan sendiri: Playground Express