[[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'));