uniapp AES加密解密

编程入门 行业动态 更新时间:2024-10-17 02:58:33

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);

 

更多推荐

uniapp AES加密解密

本文发布于:2023-06-14 05:05:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1440897.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:加密解密   uniapp   AES

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!