AES--前后台加密解密

AES--前后台加密解密


  • 微信扫码关注公众号 :前端前端大前端,追求更精致的阅读体验 ,一起来学习啊
  • 关注后发送关键资料,免费获取一整套前端系统学习资料和老男孩python系列课程
    在这里插入图片描述

desc

  • 在做登录功能的时候,出于安全性考虑,我们需要将用户输入的明文密码进行加密,后台得到加密后的数据再进行解密
  • 前台只作一件事,发送请求的时候将密码加密
  • 后台将得到的数据解密后再进行后续处理
  • 前后台沟通的桥梁是密钥和向量,两者规定长度位16,可相同

前台

安装 npm i crypto-js

加密函数

// key,iv长度为16位,可相同 自定义即可
const Encrypt = word => {
    const keyStr = '1234567898745621';
    const ivStr = keyStr;
    const key = CryptoJS.enc.Utf8.parse(keyStr);
    const iv = CryptoJS.enc.Utf8.parse(ivStr);
    const srcs = CryptoJS.enc.Utf8.parse(word);
    const encrypted = CryptoJS.AES.encrypt(srcs, key, {
        iv: iv,
        mode: CryptoJS.mode.CBC,
        padding: CryptoJS.pad.ZeroPadding
    });
    return CryptoJS.enc.Base64.stringify(encrypted.ciphertext);
}

传参处理

在这里插入图片描述

后台处理

这里以springboot 为例

创建工具类AesHelper


public class AesHelper {
    //使用AES-128-CBC加密模式,key,iv长度为16位,可相同 自定义即可

    private static String key = "1234567898745621";
    private static String iv = "1234567898745621";

    //解密方法--接收aes加密后的字符串序列

    public static String desEncrypt(String str)  {
        try {
            byte[] decodeBytes =   Base64.getDecoder().decode(str);
            Cipher cipher = Cipher.getInstance("AES/CBC/NoPadding");
            SecretKeySpec secretKeySpec = new SecretKeySpec(key.getBytes(), "AES");
            IvParameterSpec ivParameterSpec = new IvParameterSpec(iv.getBytes());
            cipher.init(Cipher.DECRYPT_MODE, secretKeySpec, ivParameterSpec);
            byte[] original = cipher.doFinal(decodeBytes);
            String originalString = new String(original);
            return originalString;
        } catch (Exception e) {
            System.out.println("解密失败:"+e.getMessage());
            return null;
        }
    }
}

使用

AesHelper.desEncrypt(password)//静态方法不需要new,直接用就ok

效果图

在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值