32 lines
1.4 KiB
JavaScript
32 lines
1.4 KiB
JavaScript
const bcrypt = require('bcrypt');
|
|
const db = require('../config/database');
|
|
|
|
// Menggenerasikan data akun petugas baru dengan pengacakan kata sandi aman
|
|
async function buat_akun_petugas_seeder() {
|
|
const username_petugas = 'petugas_pontianak';
|
|
const password_murni = 'rahasia123';
|
|
|
|
try {
|
|
// Baris kompleks: Kita menerapkan algoritma KDF Bcrypt dengan salt rounds 10 untuk menyamarkan kata sandi murni menjadi hash acak sebelum disimpan ke SQLite guna memenuhi standar kepatuhan keamanan data industri tanpa membebani memori server secara berlebihan.
|
|
const salt_rounds = 10;
|
|
const password_terhash = await bcrypt.hash(password_murni, salt_rounds);
|
|
|
|
const kueri_insert = `INSERT INTO PETUGAS (username, password) VALUES (?, ?)`;
|
|
|
|
db.run(kueri_insert, [username_petugas, password_terhash], function(error_sql) {
|
|
if (error_sql) {
|
|
console.error('Gagal menyisipkan akun petugas:', error_sql.message);
|
|
process.exit(1);
|
|
}
|
|
console.log(`Akun petugas berhasil dibuat! Username: ${username_petugas}`);
|
|
process.exit(0);
|
|
});
|
|
|
|
} catch (error_sistem) {
|
|
console.error('Terjadi kegagalan enkripsi internal:', error_sistem.message);
|
|
process.exit(1);
|
|
}
|
|
}
|
|
|
|
// Menjalankan fungsi seeder otomatis saat berkas dieksekusi di terminal
|
|
buat_akun_petugas_seeder(); |