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


Node.js cipher.setAutoPadding()用法及代码示例


在本文中,我们将讨论 Node JS 中 crypto 模块的 cipher 类中的 setAutoPadding() 方法。该方法用于自动为适当大小的输入数据添加填充。要禁用填充,可以使用带有 false 参数的 cipher.setAutoPadding()。

注意:该方法必须在最终方法之前调用。

用法:

cipher.setAutoPadding( autoPadding )

参数:该方法接受如上所述和下面讨论的单个参数:

  • autoPadding: 它用于指定是否必须使用自动填充。

示例 1:

Javascript


const crypto = require('crypto'); 
  
// Creating and initializing algorithm and password 
const algorithm = 'aes-192-cbc'; 
const password = 'Password used to generate key'; 
  
// Getting key for cipher object 
crypto.scrypt(password, 'salt', 24, 
    { N: 512 }, (err, key) => { 
  
        if (err) throw err; 
  
        // Creating and initializing the static iv 
        const iv = Buffer.alloc(16, 0); 
  
        // Creating and initializing the cipher object 
        const cipher = crypto.createCipheriv(algorithm, key, iv); 
  
        // Getting buffer value 
        // by using final() method 
  
        // Using the cipher.setAutoPadding() method 
        // with the false parameter 
        console.log(cipher.setAutoPadding(false)); 
        let value = cipher.final('hex'); 
    });

输出:

Cipheriv {
 _decoder: null,
 _options: undefined,
 [Symbol(kHandle)]: CipherBase {}
}

示例 2:在这个例子中,我们在final方法之后调用了setAutoPadding方法。如果您在最终方法之后调用此方法,我们会收到错误。

Javascript


const crypto = require('crypto'); 
  
// Creating and initializing algorithm and password 
const algorithm = 'aes-192-cbc'; 
const password = 'Password used to generate key'; 
  
// Getting key for cipher object 
crypto.scrypt(password, 'salt', 24, 
    { N: 512 }, (err, key) => { 
  
        if (err) throw err; 
  
        // Creating and initializing the static iv 
        const iv = Buffer.alloc(16, 0); 
  
        // Creating and initializing the cipher object 
        const cipher = crypto.createCipheriv(algorithm, key, iv); 
  
        // Getting buffer value 
        // by using final() method 
  
        // Calling the setAutoPadding() method  
        // after the final method  
        let value = cipher.final('hex'); 
        console.log(cipher.setAutoPadding(false)); 
    });

输出:

throw new ERR_CRYPTO_INVALID_STATE('setAutoPadding');

参考: https://nodejs.org/api/crypto.html#ciphersetautopadding



相关用法


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