在本文中,我们将讨论 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
相关用法
- Node.js cipher.setAAD()用法及代码示例
- Node.js cipher.update()用法及代码示例
- Node.js cipher.final()用法及代码示例
- Node.js cipher.getAuthTag()用法及代码示例
- Node.js crypto.createDiffieHellman()用法及代码示例
- Node.js console.clear()用法及代码示例
- Node.js console.time()用法及代码示例
- Node.js console.timeEnd()用法及代码示例
- Node.js console.log()用法及代码示例
- Node.js console.error()用法及代码示例
- Node.js console.warn()用法及代码示例
- Node.js crypto.createSign()用法及代码示例
- Node.js crypto.createVerify()用法及代码示例
- Node.js crypto.getCiphers()用法及代码示例
- Node.js crypto.getHashes()用法及代码示例
- Node.js crypto.getCurves()用法及代码示例
- Node.js crypto.getDiffieHellman()用法及代码示例
- Node.js crypto.pbkdf2()用法及代码示例
- Node.js crypto.createHash()用法及代码示例
- Node.js crypto.createHmac()用法及代码示例
- Node.js crypto.randomBytes()用法及代码示例
- Node.js crypto.publicDecrypt()用法及代码示例
- Node.js crypto.pbkdf2Sync()用法及代码示例
- Node.js crypto.createECDH()用法及代码示例
- Node.js crypto.createDecipheriv()用法及代码示例
注:本文由纯净天空筛选整理自neeraj3304大神的英文原创作品 Node.js cipher.setAutoPadding() Method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。