一、JS中加密(解密)数据,采用的是谷歌的CryptoJS静态件

链接: https://pan.baidu.com/s/1l5pHY4g45zzL85dDs8M82Q

(如果CSDN无法直接跳转,建议使用浏览器进行访问)
       提取码:4v6p

  1. jsp页面需要引入两个js,一个是加密的规则,另一个是加密的算法。(注意引入的顺序)

    <script type="text/javascript" src="ace.js"></script>
    <script type="text/javascript" src="mode-ecb.js"></script>
  2. js加密实现

    //word为需要加密的String字符
    function encrypt(word){//密钥--应和后台java解密或是前台js解密的密钥保持一致(16进制)var key = CryptoJS.enc.Utf8.parse("1111wwww2222uuuu");   //偏移量var srcs = CryptoJS.enc.Utf8.parse(word);  //算法var encrypted = CryptoJS.AES.encrypt(srcs, key, {mode:CryptoJS.mode.ECB,padding: CryptoJS.pad.Pkcs7});  //替换--防止值为“1”的情况var reg = new RegExp('/',"g");return encrypted.toString().replace(reg,"#");
    }  
  3. js解密实现
function decrypt(word){  var key = CryptoJS.enc.Utf8.parse("1111wwww2222uuuu");   var decrypt = CryptoJS.AES.decrypt(word, key, {mode:CryptoJS.mode.ECB,padding: CryptoJS.pad.Pkcs7});  return CryptoJS.enc.Utf8.stringify(decrypt).toString();  }

二、java中解密(加密)数据实现

  1. 创建加密工具类

    package com.sinosoft.utility;import javax.crypto.Cipher;
    import javax.crypto.KeyGenerator;
    import javax.crypto.spec.SecretKeySpec;import org.apache.commons.codec.binary.Base64;
    import org.apache.commons.lang3.StringUtils;import sun.misc.BASE64Decoder;/*** 加密工具类 实现aes加密、解密*/
    @SuppressWarnings("restriction")
    public class AesUtil {//密钥(16进制,和前台保持一致,或者是作为参数直接传过来也可以)private static final String defaultKey = "1111wwww2222uuuu";//算法PKCS5Paddingprivate static final String ALGORITHMSTR = "AES/ECB/PKCS5Padding";//测试数据private static final String testContent = "1";//自测public static void main(String[] args) throws Exception {System.out.println("加密前:" + testContent);String encrypt = encrypt(testContent);System.out.println("加密后:" + encrypt);String decrypt = decrypt(encrypt);System.out.println("解密后:" + decrypt);}//AES加密--为base 64 codepublic static String encrypt(String content) throws Exception {return base64Encode(aesEncryptToBytes(content));}//AES解密--并解密base 64 codepublic static String decrypt(String encryptStr) throws Exception {encryptStr.replaceAll("#","/");return StringUtils.isEmpty(encryptStr) ? null : aesDecryptByBytes(base64Decode(encryptStr));} //base 64 encode编码private static String base64Encode(byte[] bytes) {return Base64.encodeBase64String(bytes);}//base 64 decode解码---》因为传过来的值是通过base64编码而后再进行aes加密出来的,所以解密之前先进行base64解码private static byte[] base64Decode(String base64Code) throws Exception {return StringUtils.isEmpty(base64Code) ? null : new BASE64Decoder().decodeBuffer(base64Code);}//AES加密private static byte[] aesEncryptToBytes(String content) throws Exception {KeyGenerator kgen = KeyGenerator.getInstance("AES");kgen.init(128);Cipher cipher = Cipher.getInstance(ALGORITHMSTR);cipher.init(Cipher.ENCRYPT_MODE, new SecretKeySpec(defaultKey.getBytes(), "AES"));return cipher.doFinal(content.getBytes("utf-8"));}//AES解密private static String aesDecryptByBytes(byte[] encryptBytes) throws Exception {KeyGenerator kgen = KeyGenerator.getInstance("AES");kgen.init(128);Cipher cipher = Cipher.getInstance(ALGORITHMSTR);cipher.init(Cipher.DECRYPT_MODE, new SecretKeySpec(decryptKey.getBytes(), "AES"));byte[] decryptBytes = cipher.doFinal(encryptBytes);return new String(decryptBytes,"utf-8");}}
    
  2. java类中具体调用实现。

    //提供调用的方法
    public static String getAes(String data){if(!StringUtils.isEmpty(data)){String str = AesUtil.decrypt(data);return str;}return data;
    }

三、以上js加密解密,和java加密解密,皆可通用,组合。

四、本文经由思考并解决部分问题而整理出来,参考博客

http://blog.csdn.net/z83986976/article/details/51027150;

https://blog.csdn.net/u010648555/article/details/68066629

前后台数据传输问题----AES加密,前台JS加密,后台JAVA解密。相关推荐

  1. JS加密,JS混淆,JS混淆加密,JS不可逆加密,JS加密压缩

    分享一个JavaScript加密,JS加密,JS混淆,JS混淆加密,JS不可逆加密,JS加密压缩 ,JS加密. 使用方式 / 注意事项 1.本工具是本站长结合了64个组件(大部分为开源组件),开发出来 ...

  2. ASP.NET前台JS与后台CS函数如何互相调用

    在实际的Web开发中,我们可能会常常遇到后台调用前台JS代码或者前台JS调用后台代码的情况.今天就把比较实用的前后台相互调用的方法总结出来和大家分享. <1>后台代码调用前台JS代码 一. ...

  3. 不用AJAX实现前台JS调用后台C#方法(小技巧)

    纯属小技巧,高手见笑了. 一提到如何在前台JS调用后台C#方法,AJAX成为了必然的想法. 只是实现的细节采用AJAX 1.0或者AjaxPro的区别. 其实如果不用AJAX,我们也能够很方便地利用J ...

  4. RSA对称加密(JS加密,C#、Java解密)

    目录 一.背景介绍 二.工作原理 三.实现步骤 (一)JS前端加密,.NET后端解密 1.生成RSA加密的公钥和私钥. 2.前端js加密. 3.C#解密 (二)JS前端加密,Java后端解密 1.前端 ...

  5. RSA非对称加密,前台vue加密,后台java解密

    目录 前言 公钥和私钥的获取 公钥私钥例子 公钥 私钥 一.前端vue加密 1.1安装jsencrypt 1.2安装好后,在文件里引用 1.3 使用私钥加密 2.后端java解密 2.1调用代码 2. ...

  6. js前端3des加密 后台java解密

    import java.security.Key; import java.security.SecureRandom; import javax.crypto.Cipher; import java ...

  7. Android使用webview控件加载本地html,通过Js与后台Java实现数据的传递

    1.在布局文件中加WebView控件,在java中获取WebView对象. 2.加载本地html文件. webView.loadUrl("file:///android_asset/andr ...

  8. java请求url加密_URL请求对参数前端JS加密,后台JAVA解密

    import java.io.ByteArrayOutputStream; /** * 表单传输信息加密 * @author wutz * */ public class Base64Util { p ...

  9. Repeater使用:绑定时 结合 前台JS及后台共享方法

    //前台模板 //如下 //图片结合了js //lbl_DateStartEnd 的值 是直接绑定 //div的值 是由后绐共享的方法返回的HTML代码 <asp:Repeater ID=&qu ...

最新文章

  1. php mms,PHP代码示例_PHP账号余额查询接口 | 微米-中国领先的短信彩信接口平台服务商...
  2. 30岁自学python找工作-30岁新手入门python!尝试人生另一种可能
  3. 3月数据库排行:前10整体下行,出新技术了?
  4. And Then There Was One POJ - 3517(变形约瑟夫环+规律)
  5. usb otg vnc linux,20131126版本后,可以从PC通过USB-OTG VNC到pcDuino
  6. 一年换7家公司,95后跳槽多疯狂
  7. CenterOS的安装配置(配图解)
  8. maven -- 解决“Could not calculate build plan”问题
  9. winform 获取当前项目所在的路径
  10. 深入浅出统计学(中文版)统计学其实没那么死板!
  11. Centos操作系统基本介绍
  12. java贝塞尔函数插值_空间插值分析算法综述
  13. 液晶屏接口-LVDS
  14. 使用python提取英语句子中的英文单词(初学)
  15. 你知道wps可以开启护眼模式吗?
  16. 微信小程序 给数字或文字加横线,比如原价、已完成任务
  17. htt的缺点有哪些?这里列举的几点,欢迎留言
  18. SPSS24-64bit安装教程以及解决“因为应用程序的并行配置不正确。有关详细信息,请参阅应用程序事件日志,或使用命令行 sxstrace.exe ”的一些方法
  19. python中mul是什么意思_汇编MUL是什么意思?
  20. autojs之识别象棋位置

热门文章

  1. python金融分析小知识(29)——使用pandas输出excel表格并且在不同的sheet中
  2. jq分割数组、截取字符串、数组遍历push新数组
  3. GBase 8a MPP Cluster基本部署组网方案介绍
  4. OutLook中发送用户密码加密的小技巧
  5. ISP(一) 基础知识储备
  6. Unity2017.4.26 修改AndroidSdkVersions 增加 AndroidApiLevel29 AndroidApiLevel30 AndroidApiLevel31
  7. vue页面引入另一个页面
  8. 数字化校园平台问题-OA密码忘记如何处理
  9. android投屏乐视,手机投屏Letv电视的三种办法【乐播投屏】
  10. 使用Gradle构建变体