基于RSA+AES实现前后端(VUE+PHP)参数加密传输
2021/6/1 20:23:00
本文主要是介绍基于RSA+AES实现前后端(VUE+PHP)参数加密传输,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
实现原理:
前端篇
引入第三方组件,jsencrypt提供RAS加密,crypto-js提供AES加密
npm install jsencrypt npm install crypto-js
import CryptoJs from "crypto-js" import JsEncrypt from "jsencrypt" export default { /** * AES加密 * word 待加密字符串 * key 十六位十六进制数AES秘钥 */ aesEncrypt(word, key){ let encrypted = CryptoJs.AES.encrypt(CryptoJs.enc.Utf8.parse(word), CryptoJs.enc.Utf8.parse(key), { iv: CryptoJs.enc.Utf8.parse("012345679ABCDEF"), mode: CryptoJs.mode.CBC, padding: CryptoJs.pad.Pkcs7, }); } /** * RSA加密 * word 待加密字符串 * rsaPubKey RSA公钥 */ rsaEncrypt(word, rsaPubKey){ let jse = new JsEncrypt(); jse.setPublicKey(publicKey); return jse.encrypt(word); } /** * AES随机秘钥 */ aesRandomKey(){ let charStr = "012345679abcdefABCDEF"; let randomKey = ""; for (var i = 0; i < 16; i++) { randomKey += charStr[parseInt(Math.random() * charStr.length)]; } return randomKey; } /** * RSA公钥,由后端提供或通过接口动态获取 */ rsaPubKey(){ return "xxx"; } }
实现
let word = "test"; let aesKey = aesRandomKey(); let rsaPubKey = rsaPubKey(); axios.post("xxx", { wordEn: aesEncrypt(word, aesKey), // 参数密文 aesKeyEn: rsaEncrypt(aesKey, rsaPubKey), // AES秘钥密文 });
这篇关于基于RSA+AES实现前后端(VUE+PHP)参数加密传输的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-24Vue CLI多环境配置学习:从入门到实践
- 2024-11-24Vue CLI多环境配置学习:新手入门教程
- 2024-11-24Vue CLI学习:初学者指南
- 2024-11-24Vue CLI学习:从入门到上手的简单教程
- 2024-11-24Vue3+Vite学习:从零开始的前端开发之旅
- 2024-11-24Vue3阿里系UI组件学习入门教程
- 2024-11-24Vue3的阿里系UI组件学习入门指南
- 2024-11-24Vue3公共组件学习:新手入门教程
- 2024-11-24Vue3公共组件学习入门指南
- 2024-11-24vue3核心功能响应式变量学习