vue前端密码加密,springboot后端密码解密

本文介绍了如何在Vue前端应用中使用加密方法对密码进行加密,并在SpringBoot后端进行解密验证的过程。主要包括前端模块安装、加密工具文件创建、登录请求加密密码、后端引入解密工具及控制器解密步骤。测试结果显示,加密后的密码与前端传递到后端的保持一致,解密后能恢复原始密码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述
1.模块安装

npm install crypto-js

2.src–>util–>secret.js

import CryptoJS from 'crypto-js'

// 默认的 KEY 与 iv 如果没有给
const KEY = CryptoJS.enc.Utf8.parse("1234567890123456");
const IV = CryptoJS.enc.Utf8.parse('1234567890123456');
/**
 * 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);

}
/**
 * AES 解密 :字符串 key iv  返回base64
 *
 * @return {
参考资源链接:[VueSpringBoot实现国密SM2/3/4前后端联调加解密](https://wenku.youkuaiyun.com/doc/vvbtpdkd1d?utm_source=wenku_answer2doc_content) 在构建一个需要数据加密交互的Web应用时,确保使用安全的加密算法至关重要。特别是对于那些需要遵守中国国家标准(GM标准)的应用,例如使用国密SM2、SM3和SM4算法进行数据加密解密。以下是一个具体实现的示例: 首先,确保在Vue前端SpringBoot后端都已经引入了支持国密算法的第三方库。例如,在前端使用npm安装SM-Crypto库: ```bash npm install --save sm-crypto ``` 在Vue前端,创建一个加密模块,用于加密用户数据: ```javascript // 前端加密模块 import SM from 'sm-crypto'; import { encryptSM2, decryptSM2 } from './sm2Tools'; const keyPair = SM.KeyPair.fromRandom(); // 生成随机密钥对 const publicKey = keyPair.getPublicKey(); // 获取公钥用于加密 const privateKey = keyPair.getPrivateKey(); // 获取私钥用于解密 export function encryptSM2(data) { return encryptSM2(data, publicKey); } export function decryptSM2(encryptedData) { return decryptSM2(encryptedData, privateKey); } function encryptSM2(data, publicKey) { const cipher = new SM.Cipher('sm2'); cipher.setPublicKey(publicKey); return cipher.doEncrypt(data); } function decryptSM2(encryptedData, privateKey) { const cipher = new SM.Cipher('sm2'); cipher.setPrivateKey(privateKey); return cipher.doDecrypt(encryptedData); } ``` 在SpringBoot后端,创建相应的控制器和加密工具类以处理加密解密请求: ```java // 后端加密工具类 import cn.gmssl.sm2.*; import cn.gmssl.sm4.*; ***ponent; @Component public class EncryptionUtils { private KeyPair keyPair = KeyPair.generateRandom(); // 生成随机密钥对 private String publicKey = keyPair.getPublicKey(); // 获取公钥 private String privateKey = keyPair.getPrivateKey(); // 获取私钥 public String encryptSM2(String data) { // 加密数据 } public String decryptSM2(String encryptedData) { // 解密数据 } } // 后端控制器 @RestController public class DataController { private final EncryptionUtils encryptionUtils; @Autowired public DataController(EncryptionUtils encryptionUtils) { this.encryptionUtils = encryptionUtils; } @PostMapping( 参考资源链接:[VueSpringBoot实现国密SM2/3/4前后端联调加解密](https://wenku.youkuaiyun.com/doc/vvbtpdkd1d?utm_source=wenku_answer2doc_content)
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值