一、nodejs加解密工具类:

/**
* AES util
*/
const CryptoJS = require('crypto-js')
export const AES = {//加密encode: (params) => {let { data, param, key } = paramslet result = JSON.parse(JSON.stringify(data))param.forEach(ele => {let data = result[ele]key = CryptoJS.enc.Utf8.parse(key)let iv = keylet encrypted = CryptoJS.AES.encrypt(data,key,{iv: iv,mode: CryptoJS.mode.CBC,padding: CryptoJS.pad.ZeroPadding})result[ele] = encrypted.toString();})return result},decode: (params) => {let { data, param, key } = paramslet result = JSON.parse(JSON.stringify(data))param.forEach(ele => {let data = result[ele]key = CryptoJS.enc.Utf8.parse(key)let iv = keylet decrypt = CryptoJS.AES.decrypt(data, key, {iv: iv,mode: CryptoJS.mode.CBC,padding: CryptoJS.pad.ZeroPadding});let decryptedStr = decrypt.toString(CryptoJS.enc.Utf8);result[ele] = decryptedStr.toString();})return result}
}

  • 使用方法:
    (1)加密:
let user = AES.encode({data: {//要加密的数据username:'123456',password:'123456'},key: '1234567887654321',//加密的keyparam: ['password']//要加密哪些属性
})

(2)解密:

let user = AES.decode({data: {//要解密的数据username:'123456',password:'lBTqrKS0kZixOFXeZ0HRng=='},key: '1234567887654321',param: ['user']//要解密哪些属性
})

二、Java解密:

private static String decryptAES(String data, String pass) throws Exception {Cipher cipher = Cipher.getInstance("AES/CBC/NOPadding");SecretKeySpec keyspec = new SecretKeySpec(pass.getBytes(), KEY_ALGORITHM);IvParameterSpec ivspec = new IvParameterSpec(pass.getBytes());cipher.init(Cipher.DECRYPT_MODE, keyspec, ivspec);byte[] result=cipher.doFinal(Base64.decode(data.getBytes(CharsetUtil.UTF_8)));return new String(result, CharsetUtil.UTF_8);
}

  • 使用方法:
try {String s = decryptAES("lBTqrKS0kZixOFXeZ0HRng==", "1234567887654321");System.out.println(s);
} catch (Exception e) {e.printStackTrace();
}

三、Java加密:

private static String encryptAES(String data,String pass) throws Exception {byte[] raw = pass.getBytes("utf-8");SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");IvParameterSpec iv = new IvParameterSpec(pass.getBytes());cipher.init(Cipher.ENCRYPT_MODE, skeySpec, iv);byte[] encrypted = cipher.doFinal(data.getBytes());return new Base64().encode(encrypted);
}

  • 使用方法:
String e=encryptAES("123456","1234567887654321");
System.out.println(e);

<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">

来自为知笔记(Wiz)

转载于:https://www.cnblogs.com/unuai/p/cd8ff80ca06154bbed19e16d1c800283.html

Nodejs与Java通用AES加解密相关推荐

  1. Java使用AES加解密

    Java使用AES加解密 目录 1.1生成密钥 1.2密钥的存储 1.3获取存储的密钥 1.4加解密 1.5使用存储的密钥进行加解密示例 AES是一种对称的加密算法,可基于相同的密钥进行加密和解密.J ...

  2. Java实现aes加解密

    pom文件的依赖 <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 --> <depe ...

  3. Java 实现 AES 加解密

    毕业课题中需要使用加解密算法,要求加解密前后的数据长度不会变化,查了一些资料,发现可以采用AES加密的CFB跟OFB模式是无填充的模式,可以保持加解密前后数据的长度相等.下面上代码: import j ...

  4. Java笔记-AES加解密(PKCS7padding可用)

    如下代码: package cn.it1995.tool;import org.apache.tomcat.util.codec.binary.Base64; import sun.misc.BASE ...

  5. Web前后端笔记-vue cli及java进行AES加解密

    这里我直接贴代码了. vue cli中,要先导入 npm install crypto-js vue代码如下: import axios from 'axios' import cryptoJS fr ...

  6. Linux下运行java DES AES加解密

    2019独角兽企业重金招聘Python工程师标准>>> DES java源代码如下: import java.security.InvalidKeyException; import ...

  7. 记一次Java AES 加解密 对应C# AES加解密 的一波三折

    最近在跟三方对接 对方采用AES加解密 作为一个资深neter Ctrl CV 是我最大的优点 所以我义正言辞的问他们要了demo java demo代码: public class EncryptD ...

  8. Java code lib aes 加解密

    Java aes 加解密 /*** Created by LvJianwei on 2018/2/8.*/import javax.crypto.Cipher; import javax.crypto ...

  9. ios java aes_PHP7 AES加密解密函数_兼容ios/andriod/java对等加解密

    **PHP7.0 7.1 7.2 7.3 AES对等加解密类 函数文件_兼容ios/andriod/java等** 由于新项目规划要求使用PHP7.2开发环境,但在部分新系统中仍需使用AES加解密方式 ...

  10. java aes 工具类_Java中的AES加解密工具类:AESUtils

    本人手写已测试,大家可以参考使用 package com.mirana.frame.utils.encrypt; import com.mirana.frame.constants.SysConsta ...

最新文章

  1. jstl java_JSTL-Java-Baby-51CTO博客
  2. 思科数据中心Nexus 3000
  3. 开发者如何快速精简容器云镜像?| 技术头条
  4. Spring Cache 实战:兼容所有缓存中间件!
  5. webService简单入门实战(一)
  6. 完全卸载go语言编译器
  7. java hashtable 数据结构_java Hashtable底层原理是怎样的?数据结构包括什么?
  8. 手机+PC电脑如何使用油猴插件和油猴脚本?
  9. 计算机怎么通过网线共享网络,怎样用一根网线联接两台电脑实现网络共享?
  10. 飞行汽车能顺利上天吗?
  11. 幼儿园科学室创设特点
  12. Working Practice-设置免打扰时间
  13. AS(android studio) 添加第三方库时报,Error: Failed to resolve: com.github Affected Modules 解决办法
  14. 计算机专业对应的职业群有,[计算机硬件及网络]7k专业与职业群.ppt
  15. 微信公众平台开发培训
  16. 题解-hzy loves segment tree I
  17. androidTv获取TvProvider频道数据,播放Dvb的视频
  18. IDEA插件系列(87):Base64 image encoder插件——以base64编码的形式查看图像
  19. 1+x2022年9月16日实操题答案
  20. 二维码这把利刃,产品应该用到极致

热门文章

  1. windows 编写的硬件驱动_黑科技or大势所趋?谈谈手机GPU驱动升级那点事
  2. mongodb 3.4 安装_【云服务器Centos7.x建站】MongoDB 3.4安装、使用、错误总结
  3. free mybatis 不生效_Mybatis非空判断没有生效
  4. 【洛谷P3366】最小生成树(kruskal模版题+prim链式加边)
  5. 算法:单词匹配290. Word Pattern
  6. 极客大学架构师训练营 毕业典礼 奉献优秀架构师升级攻略
  7. 易筋SpringBoot 2.1 | 第十篇:SpringBoot使用thymeleaf入门
  8. python中的怎么用,python中怎么用#号
  9. this conn php,测试connect.php文件出现问题
  10. jsp语法 --模板元素,表达式,脚本片段,声明,注释