El método crypto.pbkdf2Sync() proporciona una implementación sincrónica de la función 2 de derivación de clave basada en contraseña , es decir, (PBKDF2). Además, se implementa un algoritmo de resumen HMAC particular definido por resumen para derivar una clave de la longitud de bytes requerida (keylen) a partir de la contraseña, la sal y las iteraciones indicadas.
Sintaxis:
crypto.pbkdf2Sync( password, salt, iterations, keylen, digest )
Parámetros: este método acepta cinco parámetros, como se mencionó anteriormente y se describe a continuación:
- contraseña: Es de tipo string, Buffer, TypedArray o DataView .
- sal: Debe ser lo más único posible. Sin embargo, se recomienda que una sal sea arbitraria y, en cualquier caso, tenga al menos 16 bytes de longitud. Es de tipo string, Buffer, TypedArray o DataView .
- iteraciones: debe ser un número y debe establecerse lo más alto posible. Por lo tanto, cuanto mayor sea el número de iteraciones, más segura será la clave derivada, pero en ese caso, llevará más tiempo completarla. Es de tipo número.
- keylen: Es la clave de la longitud de bytes requerida y es de tipo número.
- digest: Es un algoritmo de resumen de tipo string.
Tipo de retorno: Devuelve la clave derivada como búfer. Los siguientes ejemplos ilustran el uso del método crypto.pbkdf2Sync() en Node.js:
Ejemplo 1:
javascript
// Node.js program to demonstrate the // crypto.pbkdf2Sync() method // Including crypto module const crypto = require('crypto'); // Implementing pbkdf2Sync const key = crypto.pbkdf2Sync('secret', 'salt', 2000, 64, 'sha512'); // Prints buffer console.log(key);
Producción:
<Buffer 3c f1 85 49 62 52 38 64 2a 4e b1 4c f6 25 2e 1e fc d7 8e 01 c9 40 d7 84 63 5e 24 ef 71 0f 91 83 bb 6d 03 bd 73 43 33 ec 78 a9 78 c8 1f ea7a dc 8c a6 ...>
Ejemplo 2:
javascript
// Node.js program to demonstrate the // crypto.pbkdf2Sync() method // Including crypto module const crypto = require('crypto'); // Implementing pbkdf2Sync const key = crypto.pbkdf2Sync('secret', 'salt', 100000, 100, 'sha512'); // Prints key which is encoded and converted // to string console.log(key.toString('hex'));
Producción:
3745e482c6e0ade35da10139e797157f4a5da669dad7d5da88ef87e4 7471cc47ed941c7ad618e827304f083f8707f12b7cfdd5f489b782f10cc269 e3c08d59ae04919ee902c99dba309cde75569fbe8e6d5c341d6f2576f6618c 589e77911a261ee964e2
Referencia: https://nodejs.org/api/crypto.html#crypto_crypto_pbkdf2sync_password_salt_iterations_keylen_digest
Publicación traducida automáticamente
Artículo escrito por nidhi1352singh y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA