uniapp里我知道的有两种aes加密解密方式。
一、引入crypto-js
1.需要在uniapp项目根目录里,打开命令行,执行如下命令:
npm install crypto-js
2.在项目根目录,创建一个utils文件夹,并创建一个aes_endecrypt.js文件
- /**
- * 工具类
- */
- import Vue from 'vue'
- import CryptoJS from 'crypto-js'
- let keyStr = "abcde123456";//加密密钥
- let ivStr = "yyuuide45678";//矢量
-
- //加密
- export function aes_encrypt(word){
- keyStr = keyStr ? keyStr : 'hfhfuu8dolv98bt6';
- var key = CryptoJS.enc.Utf8.parse(keyStr);
- var iv = CryptoJS.enc.Utf8.parse(ivStr);
- // var srcs = CryptoJS.enc.Utf8.parse(word);
- var encrypted = CryptoJS.AES.encrypt(word, key, {
- iv:iv,
- mode:CryptoJS.mode.CBC,
- padding: CryptoJS.pad.Pkcs7});
- return encrypted.toString();
- }
-
- //解密
- export function aes_decrypt(word){
- keyStr = keyStr ? keyStr : 'hfhfuu8dolv98bt6';
- var key = CryptoJS.enc.Utf8.parse(keyStr);//
- var iv = CryptoJS.enc.Utf8.parse(ivStr);
- // const restoreBase64 = word.replace(/\-/g,'+').replace(/_/g,'/');
- var restoreBase64=word.replace(/[\r\n]/g,'');
-
- var decrypt = CryptoJS.AES.decrypt(restoreBase64, key, {
- iv:iv,
- mode:CryptoJS.mode.CBC,
- padding: CryptoJS.pad.Pkcs7});
- return CryptoJS.enc.Utf8.stringify(decrypt).toString();
- }
3.在main.js文件中,引入方法,并注册为全局方法
- import { aes_encrypt, aes_decrypt } from '@/utils/aes_endecrypt.js';
- Vue.prototype.aes_encrypt = aes_encrypt;
- Vue.prototype.aes_decrypt = aes_decrypt;
4.在页面中使用aes加密,解密
- var encrypt = this.aes_encrypt('123456')
- console.log('===encrypt===',encrypt);
- var decrypt = this.aes_decrypt(encrypt)
- console.log('===decrypt===',decrypt);
二、第二种方式:直接引入插件
1.在dcloud插件市场中搜索-传输加密,AES对称加密 (作者 ifloce)引入项目
2.项目main.js文件中,注册全局组件
- import AES from '@/js_sdk/ar-aes/ar-aes.js'
- Vue.prototype.AES = AES.AES
3. 在App.vue中,在methods中创建加密、解密方法
- methods: {
- //AES加密
- aesEncrypt(encrypt){
- //加密值
- var e = this.AES.encrypt(encrypt,'1234567891234567','1234567891234567')
- return e;
- },
- //AES解密
- aesDecrypt(decrypt){
- //解密值
- var d = this.AES.decrypt(decrypt,'1234567891234567','1234567891234567')
- return d;
- },
- },
4.在页面中使用aes加密解密方式
- var encrypt = getApp().aesEncrypt('abcde123');
- console.log('===encrypt===',encrypt);
- var decrypt = getApp().aesDecrypt(encrypt);
- console.log('===decrypt===',decrypt);