Files
Nilai_Clock/backend/hash_passwords.js
T
2025-07-02 10:19:06 +08:00

40 lines
1.1 KiB
JavaScript

import mysql from 'mysql2/promise'
import bcrypt from 'bcrypt'
import dotenv from 'dotenv'
dotenv.config()
async function hashPasswords() {
const db = await mysql.createConnection({
host: process.env.DB_HOST,
user: process.env.DB_USERNAME,
password: process.env.DB_PASSWORD,
database: process.env.DB_DATABASE,
port: process.env.DB_PORT,
})
try {
const [workers] = await db.execute('SELECT id, password_hash FROM workers')
for (const worker of workers) {
if (worker.password_hash && !worker.password_hash.startsWith('$2b$')) {
const saltRounds = 10
const hashedPassword = await bcrypt.hash(worker.password_hash, saltRounds)
await db.execute('UPDATE workers SET password_hash = ? WHERE id = ?', [
hashedPassword,
worker.id,
])
console.log(`Hashed password for worker with ID: ${worker.id}`)
}
}
console.log('Password hashing complete.')
} catch (error) {
console.error('Error hashing passwords:', error)
} finally {
await db.end()
}
}
hashPasswords()