首页 > 其他分享 >前端使用CryptoJS加密解密

前端使用CryptoJS加密解密

时间:2023-04-25 11:34:10浏览次数:46  
标签:enc const 解密 iv mode 加密 CryptoJS

1、安装crypto-js;

npm install crypto-js --save-dev
yarn add crypto-js --dev

2、新建unit.js写成公共方法 ;

const CryptoJS = require('crypto-js');
//16位十六进制数作为密钥(秘钥为随机生成,必须与后端保持一致!)
const key = CryptoJS.enc.Utf8.parse("xxxxxxxxxxxxxx");
//16位十六进制数作为密钥偏移量(秘钥为随机生成,必须与后端保持一致!)
const iv = CryptoJS.enc.Utf8.parse('xxxxxxxxxxxxxx');

//加密方法
function Encrypt(word) {
  const data = JSON.stringify(word);
  const srcs = CryptoJS.enc.Utf8.parse(data);
  /**
   * CipherOption, 加密的一些选项:
   *   mode: 加密模式, 可取值(CBC, CFB, CTR, CTRGladman, OFB, ECB), 都在 CryptoJS.mode 对象下
   *   padding: 填充方式, 可取值(Pkcs7, AnsiX923, Iso10126, Iso97971, ZeroPadding, NoPadding), 都在 CryptoJS.pad 对象下
   *   iv: 偏移量, mode === ECB 时, 不需要 iv
   *     返回的是一个加密对象
   */
  let encrypted = CryptoJS.AES.encrypt(srcs, key, {
      iv: iv,
      mode: CryptoJS.mode.CBC,
      padding: CryptoJS.pad.Pkcs7
  });
  //将结果进行base64加密
  return encrypted.ciphertext.toString(CryptoJS.enc.Base64);
}



// aes解密
function decrypt(word) {
  const encryptedHexStr = CryptoJS.enc.Base64.parse(word);
  const srcs = CryptoJS.enc.Base64.stringify(encryptedHexStr);
  const decrypt = CryptoJS.AES.decrypt(srcs, key, {
    iv: iv,
    mode: CryptoJS.mode.CBC,
    padding: CryptoJS.pad.Pkcs7
  });
  const decryptedStr = decrypt.toString(CryptoJS.enc.Utf8);
  return decryptedStr.toString();
}

提供几个在线加密解密地址

MD5在线加密解密:https://www.sojson.com/md5/

AES在线加密解密 :  https://www.mklab.cn/utils/aes

 

标签:enc,const,解密,iv,mode,加密,CryptoJS
From: https://www.cnblogs.com/tanweiwei/p/17352118.html

相关文章

  • 前端vue使用jsencrypt进行RAS加密/解密
    前端安装:npminstalljencrypt--sava在utils下创建jsencrypt.js文件,内容如下:importJSEncryptfrom"jsencrypt/bin/jsencrypt.min";/**RSA秘钥对生成网站http://web.chacuo.net/netrsakeypair*//**公钥512位*/constpublicKey='MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJ......
  • 用户密码加密存储与铺垫知识jwt工具类使用
    用户密码加密存储密码加密存储实际项目我们不会把密码明文存储在数据库中。默认使用PasswordEncoder要求数据库中的密码格式为{id}passwrod。它会根据id去判断密码为加密方式。但是我们一般不会采用这种方式。所以就需要替换PasswordEncod......
  • SpringSecurity从入门到精通:用户密码加密存储&铺垫只是jwt工具类使用
    用户密码加密存储    铺垫只是jwt工具类使用 ......
  • JS逆向中 cookie加密的HOOK方法
    Object.defineProperty(obj,prop,descriptor)其中,参数obj是要定义属性的对象,    prop是要定义或修改的属性名,    descriptor是属性描述符对象。     属性描述符对象的属性包括value、writable、enumerable、configurable和get和se......
  • 利用注册表限制TLS加密算法
    SChannelSSP是window实现TLS、DTLS和SSL协议的版本。不同的Windows发行版支持不同的协议版本启动注册表编辑器(Regedt32.exe),并找到以下注册表项:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers例如TripleDES168子项是D......
  • SM2加解密工具
    创建秘钥对//生成随机秘钥对publicstaticSM2KeyPairVOgenerateKeyPair(){try{X9ECParameterssm2ECParameters=GMNamedCurves.getByName("sm2p256v1");ECDomainParametersdomainParameters=newECDomainParameters(sm2ECParameters.getCurve......
  • JS逆向实战13——某市公共资源交易中心Cookie混淆加密
    "本文地址:https://www.cnblogs.com/zichliang/p/17346860.html目标网站aHR0cDovL2xkZ2d6eS5obmxvdWRpLmdvdi5jbi9sZGp5engvanl4eC9saXN0LnNodG1s网站分析经过浏览器抓包,我们可知这个网站会先发出一个412请求,然后附带一个js然后返回正常的页面。经过我们代码测试可知如......
  • 加密Python项目代码之把Django或Flask项目打包成exe
    目录python代码仿泄露方案-方案一:启动起来,把源代码删除-方案二:pipinstaller打包成可执行文件-方案三:做到docker镜像中---》运行容器---》-epassword=授权码加密Python项目代码之把Django或Flask项目打包成exe:https://zhuanlan.zhihu.com/p/430490285......
  • Springboot yml配置参数加密 ,jasypt自定义解密器
    原文链接:https://www.cnblogs.com/JCcccit/p/16868137.html前言 最近项目组开始关注一些敏感数据的明文相关的事宜,其实这些东西也是都有非常成熟的解决方案。既然最近着手去解决这些事情,那么也顺便给还未了解的大伙普及一下。Springbootyml配置参数数据加密(数据加密篇......
  • 密码加密存储 登陆接口
    实际项目中我们不会把密码明文存储在数据库中。​默认使用的PasswordEncoder要求数据库中的密码格式为:{id}password。它会根据id去判断密码的加密方式。但是我们一般不会采用这种方式。所以就需要替换PasswordEncoder。​我们一般使用SpringSecurity为我们提供的BCryptPasswo......