前端代码:
// 加密
encrypt(word, keyStr, ivStr) {let key = CryptoJS.enc.Utf8.parse('ihaierForTodoKey') // 中与后台一样  密码let iv = CryptoJS.enc.Utf8.parse('ihaierForTodo_Iv') // 中与后台一样if (keyStr) {key = CryptoJS.enc.Utf8.parse(keyStr)iv = CryptoJS.enc.Utf8.parse(ivStr)}const srcs = CryptoJS.enc.Utf8.parse(word)var encrypted = CryptoJS.AES.encrypt(srcs, key, {iv: iv,mode: CryptoJS.mode.CBC,padding: CryptoJS.pad.Pkcs7})return CryptoJS.enc.Base64.stringify(encrypted.ciphertext)
}
this.encrypt(userName.trim());

后台代码:AESUtil.java

import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;import org.apache.commons.codec.binary.Base64;
import org.apache.commons.lang.StringUtils;public class AESUtil {//密钥 (需要前端和后端保持一致)十六位作为密钥private static final String KEY = "ihaierForTodoKey";//密钥偏移量 (需要前端和后端保持一致)十六位作为密钥偏移量private static final String IV = "ihaierForTodo_Iv";//算法private static final String ALGORITHMSTR = "AES/CBC/PKCS5Padding";/*** base 64 decode* @param base64Code 待解码的base 64 code* @return 解码后的byte[]* @throws Exception*/public static byte[] base64Decode(String base64Code) throws Exception{return StringUtils.isEmpty(base64Code) ? null : Base64.decodeBase64(base64Code);}/*** AES解密** @param encryptBytes 待解密的byte[]* @return 解密后的String* @throws Exception*/public static String aesDecryptByBytes(byte[] encryptBytes) throws Exception {Cipher cipher = Cipher.getInstance(ALGORITHMSTR);byte[] temp = IV.getBytes("UTF-8");IvParameterSpec iv = new IvParameterSpec(temp);cipher.init(Cipher.DECRYPT_MODE, new SecretKeySpec(KEY.getBytes(), "AES"), iv);byte[] decryptBytes = cipher.doFinal(encryptBytes);System.out.print(new String(decryptBytes));return new String(decryptBytes);}/*** 将base 64 code AES解密* @param encryptStr 待解密的base 64 code* @return 解密后的string* @throws Exception*/public static String aesDecrypt(String encryptStr) throws Exception {return StringUtils.isEmpty(encryptStr) ? null : aesDecryptByBytes(base64Decode(encryptStr));}
}
在接收到参数调用进行解密:String mobile = AESUtil.aesDecrypt(mobile);

前后台数据加密(java版)相关推荐

  1. hmcl离线登陆_最好用的Java版启动器HMCL

    原标题:最好用的Java版启动器HMCL 推荐的启动器是什么了?就是 Hello Minecraft! Launcher 简称HMCL,这款启动器特色很多.一张图片简单说明!!! 支持离线登录代表了什 ...

  2. Twitter的分布式雪花算法 SnowFlake 每秒自增生成26个万个可排序的ID (Java版)

    分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的. 有些时候我们希望能使用一种简单一 ...

  3. 分布式主键解决方案----Twitter 雪花算法的原理(Java 版)

    SnowFlake 雪花算法 对于分布式系统环境,主键ID的设计很关键,什么自增intID那些是绝对不用的,比较早的时候,大部分系统都用UUID/GUID来作为主键,优点是方便又能解决问题,缺点是插入 ...

  4. 我的世界java下载1.13_Minecraft Java版 1.13.1-pre2 发布

    Minecraft Java 版 1.13.1-pre2 发布 Back from vacation, we're now trying to finalize 1.13.1 and get it t ...

  5. 我的世界java版不会玩_我的世界:五张MC趣图,Java版玩家永远不懂基岩版玩家的痛...

    <我的世界>1.17版本目前已经更新了8个快照版本,在玩家的期望中,Mojang总算是加入了新的洞穴--噪声洞穴(Noise Caves).虽然这属于洞穴与山崖更新的一大步,Java版玩家 ...

  6. 我的世界1.7.2 java_我的世界Java版1.7版本种子分享

    我的世界Java版的1.7版本中有哪些好的种子呢?下面就给大家带来我的世界Java版1.7版本种子分享,以供玩家参考. 1.seed:-6281771182477298288 x:74 y:68 z: ...

  7. 我的世界 java开发者_我的世界Java版开发者们畅聊水域更新

    ▍水域更新展望 Minecraft Java版的玩家们!你知不知道,现在就有一份快照供你试玩,在里面满是即将到来的水域更新特性?是真的!记住,你在快照里发现的所有东西都不是最终版本--你们的反馈永远是 ...

  8. CSP:CSP认证考试:202012-1(期末预测之安全指数)满分答案,Java版

    CSP:CSP认证考试:202012-1(期末预测之安全指数)满分答案,Java版 一.题目: 二.Java满分答案 import java.util.Scanner;public class Mai ...

  9. CSP:CSP认证考试:202104-1(灰度直方图)满分答案,Java版

    CSP:CSP认证考试:202104-1(灰度直方图)满分答案,Java版 一.题目: 二.Java满分答案 import java.util.ArrayList; import java.util. ...

  10. CSP:CSP认证考试:202109-2(非零段划分)70分答案,Java版

    CSP:CSP认证考试:202109-2(非零段划分)70分答案,Java版 一.题目: 二.Java70分答案 import java.util.ArrayList; import java.uti ...

最新文章

  1. 一些mysql innodb的建议
  2. java易语言_java程序员,0基础学习开发易语言。
  3. LINUX下文件字符集编码查看与转换并文件名编码转换
  4. codelite13 wxWidgets3 macos开发环境配置
  5. iOS开发之邮件发送代码
  6. 表的插入、更新、删除、合并操作_16_ 删除表中所有记录
  7. 酷客多基金在济南大学成立“酷客多奖助学金“
  8. JavaFX缺少的功能调查:CSS
  9. 面试官问我:平常如何对你的 Java 程序进行调优?
  10. spring boot中打包插件spring-boot-maven-plugin和maven-jar-plugin的关联
  11. 编译安装dropbear
  12. JSON离线格式化工具HiJson
  13. (更新至v0.108)termux下载、安装教程 版本v0.88
  14. android 内存占用 mac,mac Android Studio内存配置与使用情况的展示
  15. 芒果超媒前三季营收102亿:同比降12% 互联网广告收入降26%
  16. JavaScript 鼠标事件
  17. Thinkphp内核开发盲盒商城源码v2.0 对接易支付/阿里云短信/七牛云存储
  18. 厉害了隔壁老王,带你入坑腾讯联机对战引擎!
  19. 【互联网人的英语】什么时候适合用“词根词缀法”来背单词?
  20. python中del是什么意思_python中del是什么意思?

热门文章

  1. 西电2020 python OJ作业(50道题目,持续更新)
  2. 非支配排序遗传算法c语言,非支配排序遗传算法(NSGA)的研究与应用
  3. 齐次弦振动方程的matlab解法,ode45求解振动微分方程
  4. Springboot项目打包发布找不到项目中使用的文件
  5. 【Mysql】SQL语句学习
  6. python使用turtle画五星红旗!
  7. CSS中常用的10个文本样式属性——让文本设置再无难点
  8. 【Cocos2d-x】视线和光线:如何创建 2D 视觉范围效果
  9. 电影里的黑客为何都不用鼠标
  10. 甲虫之王怀旧服新开的服务器是否自动开门,魔兽世界怀旧服:不刷虫皮也能当甲虫之王,钻漏洞可量产黑虫子...