🔐 bcryptjs થી Password Hash કેવી રીતે કરશો?

તમારું વેબએપ્લિકેશન કે API સુરક્ષિત બનાવવી હોય તો પાસવર્ડ હેશિંગ ખૂબ જ જરૂરી છે. Node.js માં bcryptjs લાઇબ્રેરીનો ઉપયોગ કરીને તમે સરળતાથી યૂઝરના પાસવર્ડને Hash કરી શકો છો.

આ બ્લોગમાં આપણે શીખીશું:

  • bcryptjs શું છે?
  • bcryptjs ઇન્સ્ટોલ કેવી રીતે કરવી
  • પાસવર્ડ હેશ અને વેરિફાય કેવી રીતે કરવો
  • પૂર્ણ કોડ ઉદાહરણ

📦 bcryptjs શું છે?

bcryptjs એ JavaScript માટેની લાઈટવેઇટ લાઇબ્રેરી છે જે bcrypt અલ્ગોરિધમ નો ઉપયોગ કરીને પાસવર્ડને hash કરે છે. તે asynchronous અને synchronous બંને મોડ સપોર્ટ કરે છે.

bcryptjs થી Password Hash કેવી રીતે કરશો

⚙️ bcryptjs ઇન્સ્ટોલ કરવાની રીત

npm install bcryptjs

🔑 પાસવર્ડ 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

Leave a Reply

Your email address will not be published. Required fields are marked *