当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Node.js crypto.scryptSync()用法及代码示例


crypto.scryptSync()是一个内置函数,可在Node.js中提供同步scrypt实现。 scrypt是基于密码的 key 派生函数。这样做的目的是要在计算上加上在内存方面增加成本。因此,暴力攻击无法成功进行。

用法:

crypto.scryptSync(password, salt, keylen[, options])

参数:此方法接受上述和以下所述的五个参数:

  • password:它可以保存字符串,Buffer,TypedArray或DataView类型的数据。
  • salt:它保存字符串,Buffer,TypedArray或DataView类型的数据。它必须尽可能唯一。此外,建议盐应该是随机的,并且至少应为16个字节长。
  • keylen:它表示 key 的长度,并且必须是数字。
  • options:它是Object类型的,具有七个参数,分别是cost,blockSize,parallelization,N,r,p和maxmem。

返回值:它返回一个缓冲区。

以下示例说明了Node.js中crypto.scryptSync()方法的用法:



范例1:

app.js


// Example of  crypto.scryptSync() Method
  
// Including crypto module in the app.js. 
import crypto from 'crypto'
  
// Calling scryptSync() method with some of its parameter 
const keyExample = crypto.scryptSync('GeeksforGeeks', 
                                     'gfggfg', 32);
  
// Prints result key as buffer 
console.log("The key in the form of buffer is:",keyExample);  
  
  
// Calling scryptSync() method with the parameter N 
const keyExample2 = crypto.scryptSync('GFG_ARTICLE', 'GFGGFG', 64, { N:512 });
  
// Prints result key as buffer 
console.log("The key in the form of buffer is:",keyExample2);
node app.js

输出:

The key in the form of buffer is:<Buffer 
d9 9d b7 7e 7c 25 cb 39 db 3b 16 6b b8 47 73 43 4e 
96 72 9c 02 b3 55 7b 7d 66 f5 54 e6 e3 a0 e6>

The key in the form of buffer is:<Buffer 
26 c4 91 3f a7 03 b8 30 7a b5 bf a6 fe de 34 aa 46 
8c b5 dd b6 0d ce 5a 5e 03 91 a1 7c 7d ba d0 5b d6 
62 8e 11 3a 45 f6 41 a2 be b2 39 c9 57 5a 78 55 ... 
14 more bytes>

范例2:

app.js


// Example of  crypto.scryptSync() Method
  
// Including crypto module in the app.js. 
import crypto from 'crypto'
  
// Defining salt as typed array 
 const arr = new Float64Array(8.0)
  
// Calling scryptSync() method with some of its parameter 
const keyExample = crypto.scryptSync('gghhgh', arr, 16);
  
// Prints result key as buffer 
console.log("The key in the form of ASCII is:"
             ,keyExample.toString("ascii")); 
  
  
// Defining salt as data view 
const arr1= new DataView(new ArrayBuffer(17)); 
  
// Calling scryptSync() method with the parameter N 
const keyExample2 = crypto.scryptSync('jbjbb', arr1, 16, { N:16 });
  
// Prints result key as buffer 
console.log("The key in the form of hex is:",keyExample2.toString('hex'));
node app.js

输出:

The key in the form of ASCII is:k&q0Y4EQ_72
The key in the form of hex is:
29dcb56a3d91f7be66de7444bc7ac605

相关用法


注:本文由纯净天空筛选整理自_sh_pallavi大神的英文原创作品 Node.js crypto.scryptSync() Function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。