zoukankan      html  css  js  c++  java
  • JAVA WEB实现前端加密后台解密

    最近在研究登陆密码的加密,下边上具体代码,只是给出核心代码,具体的代码视业务而定吧,给位有什么问题或者意见请留言。

    加密方法用的是AES-128-CBC,BASE64用的是org.apache.commons.codec.binary.Base64

    JS代码:

    var password = "1234567890,./";
    var key = CryptoJS.enc.Utf8.parse("0102030405060708");//密钥,128位加密密钥为16位
    var content= CryptoJS.enc.Utf8.parse(password);//需要加密的内容
    var encrypted = CryptoJS.AES.encrypt(content, key, {iv: key,mode:CryptoJS.mode.CBC}); //加密内容


    JAVA代码Action:

    String content= request.getParameter("content");//前台传过来的加密之后的数据
    String key = "0102030405060708";
    IvParameterSpec iv = new IvParameterSpec(key.getBytes());
    String a = AESUtil.Decrypt(content, key, iv);
    System.out.println(a);
    

     JAVA代码Util:

    //解密  
        public static String Decrypt(String content, String key,IvParameterSpec iv) throws Exception{    
            byte[] raw = key.getBytes("ASCII");    
            SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");    
            Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");    
            cipher.init(Cipher.DECRYPT_MODE, skeySpec, iv);    
            byte[] encrypted1 = Base64.decodeBase64(content);//先用bAES64解密   
            byte[] original = cipher.doFinal(encrypted1);    
            String originalString = new String(original,"UTF-8");    
            return originalString;    
        }    
  • 相关阅读:
    numpy基本使用2
    python 继承 多态
    动态规划算法题(5题)
    利用栈非递归实现块排
    数据结构
    对Node的优点和缺点提出了自己的看法?
    前后端交互流程,如何进行交互
    Web App、Hybrid App与Native App的设计差异
    什么叫优雅降级和渐进增强?
    常用博客
  • 原文地址:https://www.cnblogs.com/aotian/p/3833581.html
Copyright © 2011-2022 走看看