当前位置:   article > 正文

nodejs和vue中使用crypto-js的PBKDF2加密解密_node.js 安装crypto-js

node.js 安装crypto-js

1.先安装crypto-js包

npm install crypto-js

2.创建一个js文件

  1. import crypto from 'crypto' //引入crypto
  2. //const crypto = require('crypto');//nodejs引入
  3. const key = crypto.pbkdf2Sync("string1", "string2", 2, 16, 'sha1')//生成加密解密密匙的函数
  4. // string1和string2是自定义的作为密匙的字符串
  5. // 2 是设置迭代次数的,次数越高生成的密匙越安全
  6. // 16 是设置字节长度的(16或32之类的)
  7. // sha1 指定模式
  8. const algorithm = 'aes-128-cbc'//指定算法
  9. const VIPARA = '1269571869323222'//初始化向量,可以空
  10. const UTF_8 = 'utf-8'//输入的编码格式
  11. const cipherEncoding = 'base64'//输出的编码格式
  12. // 加密
  13. function getAes(content){
  14. const cipher = crypto.createCipheriv(algorithm, key, VIPARA)//生成一个cipher对象
  15. let encStr = cipher.update(content, UTF_8, cipherEncoding);
  16. //content 是要加密的内容
  17. encStr += cipher.final(cipherEncoding)
  18. return encStr
  19. };
  20. // 解密
  21. function jieAes(text){
  22. try {
  23. const decipher = crypto.createDecipheriv(algorithm, key, VIPARA)//生成decipher对象
  24. let decstr = decipher.update(text, cipherEncoding, UTF_8)
  25. decstr += decipher.final(UTF_8)
  26. // text是要解密的内容
  27. return decstr
  28. } catch (error) {
  29. //自定义输出解密错误信息
  30. return '-1'
  31. }
  32. };
  33. export default {getAes,jieAes}
  34. //module.exports= {getAes,jieAes} //nodejs模块导出

crypto-js库提供了多种加密方式,这里使用PBKDF2加密,可以指定生成固定的密钥长度,如果要使用哈希或对称加密,可以查看这篇文章crypto 简单了解

3.加密传入的对象为字符串,传入数值类型会报错,解密的时候如果传入的对象解析不出来也会报错,这里使用try catch来抛出错误,可以根据抛出的错误来判断是否解析成功

 4.在其他页面,或组件中使用方法

  1. import base64 from '@/utils/base64.js' //vue导入,nodejs使用require导入
  2. let password = base64.getAes('123456..')
  3. console.log(password)
  4. console.log(base64.jieAes(password))

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/687847
推荐阅读
相关标签
  

闽ICP备14008679号