位置: IT常识 - 正文

java前后端加密解密crypto-js(java前后端加密解密请求)

编辑:rootadmin
java前后端加密解密crypto-js 项目场景:

推荐整理分享java前后端加密解密crypto-js(java前后端加密解密请求),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:java加密器,java加密技术,java 加密,前后端数据加密,java后端加密前端解密,java前后端加密解密请求,前后端加密方式,java前端密码加密,内容如对您有帮助,希望把文章链接给更多的朋友!

适用于接口数据敏感信息,比如 明文传输姓名、居住地址、手机号等信息,如果存在明文传输敏感数据问题、及数据泄漏风险,则可使用此方法加密解密。

一、下载crypot-js

1.如果为vue项目,安装cnpm,采用命令安装即可:

安装命令:cnpm install crypto-js;

2.如果为一般web项目,https://github.com/brix/crypto-js,进行下载;

二、前端引入crypto-js文件,并命名为secrt.js

import CryptoJS from 'crypto-js'

// 默认的 KEY 与 iv 如果没有给,可自行设定,但必须16位

const KEY = CryptoJS.enc.Utf8.parse("abcdefgh12345678");

const IV = CryptoJS.enc.Utf8.parse('12345678abcdefgh');

/**

 * AES加密 :字符串 key iv  返回base64

 */

export function Encrypt(word, keyStr, ivStr) {

    let key = KEY;

    let iv = IV;

    if (keyStr) {

        key = CryptoJS.enc.Utf8.parse(keyStr);

        iv = CryptoJS.enc.Utf8.parse(ivStr);

    }

    let srcs = CryptoJS.enc.Utf8.parse(word);

    var encrypted = CryptoJS.AES.encrypt(srcs, key, {

        iv: iv,

        mode: CryptoJS.mode.CBC,

        padding: CryptoJS.pad.ZeroPadding

    });

    return CryptoJS.enc.Base64.stringify(encrypted.ciphertext);

}

/**

 1. AES 解密 :字符串 key iv  返回base64

 2.  3. @return {string}

java前后端加密解密crypto-js(java前后端加密解密请求)

 */

export function Decrypt(word, keyStr, ivStr) {

    let key = KEY;

    let iv = IV;

    if (keyStr) {

        key = CryptoJS.enc.Utf8.parse(keyStr);

        iv = CryptoJS.enc.Utf8.parse(ivStr);

    }

    let base64 = CryptoJS.enc.Base64.parse(word);

    let src = CryptoJS.enc.Base64.stringify(base64);

    let decrypt = CryptoJS.AES.decrypt(src, key, {

        iv: iv,

        mode: CryptoJS.mode.CBC,

        padding: CryptoJS.pad.ZeroPadding

    });

    let decryptedStr = decrypt.toString(CryptoJS.enc.Utf8);

    return decryptedStr.toString();

}

三、前端页面引入并加密数据

import {Encrypt} from '../../secrt.js'

//text为需要加密的内容

var userId= Encrypt(text);

四、后端解密数据

1.pom引用

2.创建工具类

import javax.crypto.Cipher; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec; import org.apache.commons.codec.binary.Base64;

public class SecretUtil {     /***      * key和iv值可以随机生成,确保与前端的key,iv对应      */     private static String KEY = "abcdefgh12345678";     private static String IV = "12345678abcdefgh";

    /***      * 加密      *       * @param data 要加密的数据      * @return encrypt      */     public static String encrypt(String data) {         return encrypt(data, KEY, IV);     }          /***

     *  解密      * @param data 要解密的数据      */     public static String desEncrypt(String data) {         return desEncrypt(data, KEY, IV);     }

    /**      * 加密方法      */     private static String encrypt(String data, String key, String iv) {         try {             // "算法/模式/补码方式"NoPadding PkcsPadding             Cipher cipher = Cipher.getInstance("AES/CBC/NoPadding");             int blockSize = cipher.getBlockSize();             byte[] dataBytes = data.getBytes();             int plaintextLength = dataBytes.length;             if (plaintextLength % blockSize != 0) {                 plaintextLength = plaintextLength + (blockSize - (plaintextLength % blockSize));             }             byte[] plaintext = new byte[plaintextLength];             System.arraycopy(dataBytes, 0, plaintext, 0, dataBytes.length);             SecretKeySpec keyspec = new SecretKeySpec(key.getBytes(), "AES");             IvParameterSpec ivspec = new IvParameterSpec(iv.getBytes());             cipher.init(Cipher.ENCRYPT_MODE, keyspec, ivspec);             byte[] encrypted = cipher.doFinal(plaintext);

            return new Base64().encodeToString(encrypted);         } catch (Exception e) {             e.printStackTrace();             return null;         }     }

    /**      * 解密方法      */     private static String desEncrypt(String data, String key, String iv) {         try {             byte[] encrypted1 = new Base64().decode(data);

            Cipher cipher = Cipher.getInstance("AES/CBC/NoPadding");             SecretKeySpec keySpec = new SecretKeySpec(key.getBytes(), "AES");             IvParameterSpec ivSpec = new IvParameterSpec(iv.getBytes());             cipher.init(Cipher.DECRYPT_MODE, keySpec, ivSpec);             byte[] original = cipher.doFinal(encrypted1);             return new String(original).trim();         } catch (Exception e) {             e.printStackTrace();             return null;         }     } }  

3.数据解密

@GetMapping(value = "/userInfo")  public getUserInfo(@RequestParam(name = "userId") String userId)     String userId= desEncrypt(userId); }

本文链接地址:https://www.jiuchutong.com/zhishi/297815.html 转载请保留说明!

上一篇:使用antv/G6在vue项目中开发较复杂样式流程图(antv g6 node 嵌套)

下一篇:H5画布 canvas(一)canvas简介、绘制圆形/矩形、案例饼状图绘制(h5 画图)

  • 苹果手机有自带检测摄像头吗(苹果手机有自带的清理软件吗)

    苹果手机有自带检测摄像头吗(苹果手机有自带的清理软件吗)

  • 苹果15.3戴口罩解锁怎么设置(ios15 戴口罩)

    苹果15.3戴口罩解锁怎么设置(ios15 戴口罩)

  • win10时间同步在哪

    win10时间同步在哪

  • 苹果11录屏能录通话吗(苹果11录屏能录多长时间)

    苹果11录屏能录通话吗(苹果11录屏能录多长时间)

  • 华为nova4有没有耳机(华为nova4有没有红外线遥控功能)

    华为nova4有没有耳机(华为nova4有没有红外线遥控功能)

  • 京东可以货到付款吗(京东可以货到付款的吗)

    京东可以货到付款吗(京东可以货到付款的吗)

  • honor6a是什么手机(honor6x是什么牌子手机)

    honor6a是什么手机(honor6x是什么牌子手机)

  • e3 1230 v5相当于i几(e31230v5相当于i7什么)

    e3 1230 v5相当于i几(e31230v5相当于i7什么)

  • qq打卡出来多少天了(qq打卡有什么奖励)

    qq打卡出来多少天了(qq打卡有什么奖励)

  • 华为4pro手环怎么开机(华为4pro手环怎么连接手机)

    华为4pro手环怎么开机(华为4pro手环怎么连接手机)

  • 抖音直播封号的原因(抖音直播封号该怎么办)

    抖音直播封号的原因(抖音直播封号该怎么办)

  • qq情侣相册解除了照片还在吗(qq情侣相册解除了照片不在回收站)

    qq情侣相册解除了照片还在吗(qq情侣相册解除了照片不在回收站)

  • 苹果x外屏碎了需要换内屏吗(苹果x外屏碎了多少钱)

    苹果x外屏碎了需要换内屏吗(苹果x外屏碎了多少钱)

  • 三摄像头有什么用(什么叫三摄像头手机)

    三摄像头有什么用(什么叫三摄像头手机)

  • 12306官网43003操作失败是什么意思(12306.cn)

    12306官网43003操作失败是什么意思(12306.cn)

  • 微信运动不联网能用吗(微信运动不联网会更新步数吗)

    微信运动不联网能用吗(微信运动不联网会更新步数吗)

  • 手机微博怎么清空微博(手机微博怎么清除别人回复的评论和记录)

    手机微博怎么清空微博(手机微博怎么清除别人回复的评论和记录)

  • 抖音备忘录在哪里找(抖音的备忘录app是啥)

    抖音备忘录在哪里找(抖音的备忘录app是啥)

  • linux 防火墙查看(linux防火墙查看状态报错)

    linux 防火墙查看(linux防火墙查看状态报错)

  • 苹果x有4.7寸的吗(iphonex有4.7英寸的吗)

    苹果x有4.7寸的吗(iphonex有4.7英寸的吗)

  • miui10远程协助在哪里(miui9远程协助)

    miui10远程协助在哪里(miui9远程协助)

  • 微信怎么关闭性别(微信怎么关闭性别图标)

    微信怎么关闭性别(微信怎么关闭性别图标)

  • win10重启(win10重启一直转圈)

    win10重启(win10重启一直转圈)

  • 四芯网线接法是什么?(4芯网线插线顺序图)

    四芯网线接法是什么?(4芯网线插线顺序图)

  • 系统远程桌面连接在哪?如何使用此功能?(系统远程桌面连接怎么用)

    系统远程桌面连接在哪?如何使用此功能?(系统远程桌面连接怎么用)

  • benser.exe是什么进程 benser进程的作用是什么(.exe是什么文件)

    benser.exe是什么进程 benser进程的作用是什么(.exe是什么文件)

  • 如何像专业人员那样在openSUSE上安装和更新软件?opensuse安装软件详细教程(如何使专业人员的工作卓有成效读后感悟)

    如何像专业人员那样在openSUSE上安装和更新软件?opensuse安装软件详细教程(如何使专业人员的工作卓有成效读后感悟)

  • 黄石国家公园的美洲野牛,美国怀俄明州 (© Steve Gettle/Minden Pictures)(黄石国家公园的占地面积)

    黄石国家公园的美洲野牛,美国怀俄明州 (© Steve Gettle/Minden Pictures)(黄石国家公园的占地面积)

  • 两处以上取得工资如何交社保
  • 个税申报赡养老人只能填一个吗
  • 地方教育费附加的计税依据是什么
  • 个税申报专项扣除怎么填
  • 处置固定资产需要税务局备案吗
  • 关联企业往来款 利息
  • 金蝶固定资产折旧怎么修改
  • 销售大型设备的税率
  • 结存材料物资会计分录怎么做?
  • 销售折让会影响单价吗
  • 福利费用发票可以抵扣
  • 公司买了商品做活动会计分录
  • 增值税普票跨月怎么冲红
  • 房地产并购的税率是多少
  • 个人所得税反推器
  • 小微企业享受优惠
  • 营运资金的范畴包括哪些
  • 个人买卖二手房增值税
  • 固定成本与变动成本的区别
  • 建筑业进项税抵扣不足
  • 政府高薪补贴
  • 有留抵怎么交增值税
  • 为什么有的发票没有发票章
  • 商业承兑汇票如何查询
  • 工程结算的账务处理
  • 发票明细与实际送货清单不符
  • 羊肚菌的功效和价格
  • 废品损失是什么类账户
  • 若依管理系统前端代码分析
  • 小微企业所得税税收优惠政策2023年
  • 金融机构同业外汇存款账户管理办法
  • 微信小程序web-view 添加悬浮按钮
  • php二维数组按某个键值排序
  • 猿类作文
  • 外贸企业购货合同要交印花税吗
  • 多模手机
  • 论文阅读网站排行榜
  • 不得从销项税额中抵扣的是
  • 汇算清缴退税的账务处理
  • mongodb reference
  • 马踏棋盘游戏规则
  • 固定资产属于有形还是无形资产
  • 进口税 增值税
  • 个人所得税计算器公式
  • 现金流量表中支付的税费怎么填
  • 成本费用率分析说明
  • 没有发票的房租怎么入账
  • 预付房租的账务处理
  • 收到银行开的手续费发票如何做帐
  • 企业收到宣传费怎么做账
  • 快捷酒店财务一般几个人
  • 存货类明细分类账一般采用
  • 培训发票能抵扣吗
  • 待清算商户款项分录的摘要是什么
  • 保险公司的业务分为
  • win8 start menu
  • 电脑预读文件
  • msswchx.exe - msswchx进程是什么文件 有何作用
  • neoCopy.exe - neoCopy是什么进程 有什么用
  • win7 win10 win8
  • windows8 应用商店
  • linux扩充inode
  • 微软星期二补丁
  • 学习雷锋好榜样
  • jQuery实现两个下拉列表关联
  • nodejs命令行参数解析
  • 使用ssh登录远程服务器有两种方法
  • 用nodejs实现三个类,动物基础类(有跑的函数,吃的函数)
  • javascript如何学
  • js验证正则表达式
  • python特性和属性
  • javascript闭包运行原理
  • js过滤特殊字符串
  • 电子税务局可以开纸质发票吗
  • 国家税务总局的局长什么级别
  • 河北电子税务局新版登录
  • 大连个体营业执照怎么办
  • 一年内在两家公司任职个税汇算清缴
  • 2020年保安证取消了吗
  • 发票机怎么测试打印
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设