javascript - 为什么每次我用 simple-encryptor npm 运行加密时,它都会输出不同的结果
问题描述
请帮我解决这个问题。
var key = 'real secret keys should be long and random';
// Create an encryptor:
var encryptor = require('simple-encryptor')(key);
var encrypted = encryptor.encrypt('testing');
// Should print gibberish:
console.log('encrypted: %s', encrypted);
我在“NPM”上使用库:“simple-encryptor”,但每次我运行“加密”功能时,它都会输出不同的结果。
例如:
第一:“4792f3eacff628801005f14f1bc25ba0353…3e969662c4i/It97adse8M+1tmRHnYCQ==”
第二:“6c576df521df45cc48ffe594fbe13084353…66e3552bdaLoAV3rortuDbJYox=
1 (您可以在: https
://npm.runkit.com/simple-encryptor
上运行示例代码)
因此:当我将数据保存到本地并返回时,我无法解密这些数据。
为什么每次运行时加密的结果都不同?
在这种情况下如何解密数据?
解决方案
大多数加密算法都需要一个初始化向量 (IV)。IV 本身不敏感,通常与输出密文一起保存。在某些情况下,该库会为您处理此问题,并将其作为输出的一部分包含在内。
大概 IV 是由库随机生成的,以保护您免受由于密钥重用而导致的问题。每次运行脚本时,这个随机生成的 IV 都会导致输出不同。
推荐阅读
- go - Goland 上的 Golang 自动重载(Jetbrains IDE)?
- c# - 打开 xml sdk 2.0 使用公式读取 excel 单元格值
- python - Django:可以将 DOM 元素的值传递给 TemplateTag 吗?
- node.js - 为反应项目执行 npm start 时如何打开非默认浏览器
- python - 从包含 y 个总嵌入的 Tensorflow 变量中平均 x 个嵌入的最有效方法
- windows - Windows 10 中非常慢的 git clone
- javascript - 使用 NodeJS 和 Puppeteer 嵌套异步函数
- git - 是否可以在 Github 和 Gitlab 上放置一个 Git 存储库?
- php - 警告:mysqli_query() 期望参数 1 为 mysqli,字符串在第 6 行的 E:\Oficina\xampp\htdocs\Formulario-Oficina\listartecnicas.php 中给出
- php - PHP代码,“include”函数不包含文件