[[oktatas:web:nodejs|< Node.js]]
====== Titkosítás ======
* **Szerző:** Sallai András
* Copyright (c) 2024, Sallai András
* Szerkesztve: 2024
* Licenc: [[https://creativecommons.org/licenses/by-sa/4.0/|CC BY-SA 4.0]]
* Web: https://szit.hu
===== bcryptjs =====
A bcryptjs a C++ alapú bcrypt JavaScript-re optimalizált verziója. Blowfish titkosítást használ.
npmjs.com helyen:
* https://www.npmjs.com/package/bcryptjs
Telepítés:
npm install bcryptjs
const bcrypt = require('bcryptjs');
const szoveg = 'titok';
const hash = bcrypt.hashSync(szoveg);
console.log(hash);
Nem adtunk meg sót, de az automatikusan generálódik, 22 karakter hosszú.
const bcryptjs = require('bcryptjs');
/* Jelszó, amit tárolni szeretnénk: */
const szoveg = 'titok';
/*
Paraméterek:
jelszó, só bonyolultsága; 10 körülbelül 1024 iteráció:
*/
const salt = bcryptjs.genSaltSync(10);
/*
Paraméterek:
jelszó, só vagy bonyolultság:
*/
const hash = bcryptjs.hashSync(szoveg, salt);
console.log(hash);
/*
Ellenőrzés paraméterei:
bekért jelszó, a már meglévő hash
*/
const res = bcryptjs.compareSync(szoveg, hash);
console.log(res);
Asszinkron módban, ellenőrzés is:
const bcryptjs = require('bcryptjs');
const szoveg = 'titok';
/*
jelszó, só hossza, callback függvény
*/
bcryptjs.hash(szoveg, 10, (err, hash) => {
console.log(hash);
})
const hash = '$2a$10$rEep5i3RlXnSvIObnND6qOrxqKJLXpmGHlrnKoSpVI6ROiHwB1TtK';
bcryptjs.compare(szoveg, hash, (err, res) => {
console.log(res);
});
===== crypto-js =====
Webhely:
* https://www.npmjs.com/package/crypto-js
Telepítés:
npm install crypto-js
const cryptojs = require('crypto-js');
const szoveg = 'titok';
const hash = cryptojs.MD5(szoveg).toString();
console.log(hash);
const cryptojs = require('crypto-js');
const szoveg = 'titok';
const hash = cryptojs.SHA256(szoveg).toString();
console.log(hash);
const cryptojs = require('crypto-js');
const szoveg = 'titok';
const hash = cryptojs.SHA512(szoveg).toString();
console.log(hash);
===== argon2 =====
npm install argon2
const argon2 = require('argon2');
const szoveg = 'titok';
argon2.hash(szoveg).then(hash => {
console.log(hash);
});
const argon2 = require('argon2');
const szoveg = 'titok';
const hash = '$argon2id$v=19$m=65536,t=3,p=4$qtzFpXHWk/X/MJziOST2RQ$orDbO+QZ+1bT5lsZcBwUiTFHl4fsqvTLeJxcrKYIIr4';
argon2.verify(hash, szoveg).then(isVerified => {
console.log(isVerified);
});
===== pbkdf2 =====
Tároló:
* https://www.npmjs.com/package/pbkdf2
Telepítés:
npm install pbkdf2
const pbkdf2 = require('pbkdf2');
const szoveg = 'titok';
/*
Paraméterek:
jelszó, só, iterációk, kulcshossz, digest algoritmus
*/
const hash = pbkdf2.pbkdf2Sync(szoveg, 'aaaaa', 1000, 64, 'sha512');
//hex, base64
console.log(hash.toString('base64'));