🔐 bcryptjs થી Password Hash કેવી રીતે કરશો?
તમારું વેબએપ્લિકેશન કે API સુરક્ષિત બનાવવી હોય તો પાસવર્ડ હેશિંગ ખૂબ જ જરૂરી છે. Node.js માં bcryptjs
લાઇબ્રેરીનો ઉપયોગ કરીને તમે સરળતાથી યૂઝરના પાસવર્ડને Hash કરી શકો છો.
આ બ્લોગમાં આપણે શીખીશું:
- bcryptjs શું છે?
- bcryptjs ઇન્સ્ટોલ કેવી રીતે કરવી
- પાસવર્ડ હેશ અને વેરિફાય કેવી રીતે કરવો
- પૂર્ણ કોડ ઉદાહરણ
📦 bcryptjs શું છે?
bcryptjs
એ JavaScript માટેની લાઈટવેઇટ લાઇબ્રેરી છે જે bcrypt અલ્ગોરિધમ નો ઉપયોગ કરીને પાસવર્ડને hash કરે છે. તે asynchronous અને synchronous બંને મોડ સપોર્ટ કરે છે.

⚙️ bcryptjs ઇન્સ્ટોલ કરવાની રીત
npm install bcryptj
s
🔑 પાસવર્ડ Hash કેવી રીતે કરશો?
const bcrypt = require('bcryptjs');
const password = 'mySecret123';
// Hashing the password
bcrypt.genSalt(10, (err, salt) => {
bcrypt.hash(password, salt, (err, hashedPassword) => {
if (err) throw err;
console.log('Hashed Password:', hashedPassword);
});
});
🔁 અહીં
genSalt
એક સુરક્ષિત રેન્ડમ “સોલ્ટ” બનાવે છે, અને પછીhash()
પાસવર્ડને હેશ કરે છે.
✅ Hash થયેલા પાસવર્ડને વેરિફાય કેવી રીતે કરશો?
const bcrypt = require('bcryptjs');
const password = 'mySecret123';
const hashedPassword = '$2a$10$4oVZCNqX5RpGoZ3ME6zN2e9I3AGss3JDF93xF...'; // Example hashed password
bcrypt.compare(password, hashedPassword, (err, isMatch) => {
if (err) throw err;
if (isMatch) {
console.log('✅ પાસવર્ડ મેળ ખાતો છે!');
} else {
console.log('❌ પાસવર્ડ ખોટો છે.');
}
});
🧠 ઉપયોગી સૂચનો:
- હંમેશા
.env
ફાઈલમાં પાસવર્ડ રિલેટેડ સેટિંગ્સ (e.g., rounds) રાખો. - Hash થયેલા પાસવર્ડને ક્યારેય ડીકોડ કરવાનો પ્રયાસ ન કરો — compare() ઉપયોગ કરો.
bcryptjs
નું sync version પણ છે →bcrypt.hashSync()
, પણ async વધુ સલામત છે.
🧪 Full Example: Register અને Login
📥 Register API
const bcrypt = require('bcryptjs');
const User = require('./models/User');
app.post('/register', async (req, res) => {
const { username, password } = req.body;
const salt = await bcrypt.genSalt(10);
const hashedPassword = await bcrypt.hash(password, salt);
const newUser = new User({ username, password: hashedPassword });
await newUser.save();
res.json({ message: 'User registered successfully' });
});
🔐 Login API
app.post('/login', async (req, res) => {
const { username, password } = req.body;
const user = await User.findOne({ username });
if (!user) return res.status(400).json({ message: 'User not found' });
const isMatch = await bcrypt.compare(password, user.password);
if (!isMatch) return res.status(401).json({ message: 'Invalid credentials' });
res.json({ message: 'Login successful' });
});
📌 (Conclusion):
bcryptjs
એ પાસવર્ડ હેશ કરવા માટે સરળ અને સુરક્ષિત લાઇબ્રેરી છે. ઉપરના ઉદાહરણોથી તમે સરળતાથી તમારા Node.js એપ્લિકેશનમાં યૂઝર ડેટા સુરક્ષિત રાખી શકો છો.
📈 FAQ:
❓ bcryptjs અને bcrypt માં શું તફાવત છે?
bcryptjs
JavaScript only library છે જ્યારે bcrypt
C++ bindings વાપરે છે. bcryptjs
install માં સરળ છે અને cross-platform છે.
❓ શું bcryptjs Hash reversible છે?
ના. Hash irreversible હોય છે. તમે compare() વડે માત્ર મેળ ખાય છે કે નહિ તે ચેક કરી શકો.
2 Comments