• uniapp AES加密解密


    uniapp里我知道的有两种aes加密解密方式。

    一、引入crypto-js

    1.需要在uniapp项目根目录里,打开命令行,执行如下命令:

    npm install crypto-js

    2.在项目根目录,创建一个utils文件夹,并创建一个aes_endecrypt.js文件

    1. /**
    2. * 工具类
    3. */
    4. import Vue from 'vue'
    5. import CryptoJS from 'crypto-js'
    6. let keyStr = "abcde123456";//加密密钥
    7. let ivStr = "yyuuide45678";//矢量
    8. //加密
    9. export function aes_encrypt(word){
    10. keyStr = keyStr ? keyStr : 'hfhfuu8dolv98bt6';
    11. var key = CryptoJS.enc.Utf8.parse(keyStr);
    12. var iv = CryptoJS.enc.Utf8.parse(ivStr);
    13. // var srcs = CryptoJS.enc.Utf8.parse(word);
    14. var encrypted = CryptoJS.AES.encrypt(word, key, {
    15. iv:iv,
    16. mode:CryptoJS.mode.CBC,
    17. padding: CryptoJS.pad.Pkcs7});
    18. return encrypted.toString();
    19. }
    20. //解密
    21. export function aes_decrypt(word){
    22. keyStr = keyStr ? keyStr : 'hfhfuu8dolv98bt6';
    23. var key = CryptoJS.enc.Utf8.parse(keyStr);//
    24. var iv = CryptoJS.enc.Utf8.parse(ivStr);
    25. // const restoreBase64 = word.replace(/\-/g,'+').replace(/_/g,'/');
    26. var restoreBase64=word.replace(/[\r\n]/g,'');
    27. var decrypt = CryptoJS.AES.decrypt(restoreBase64, key, {
    28. iv:iv,
    29. mode:CryptoJS.mode.CBC,
    30. padding: CryptoJS.pad.Pkcs7});
    31. return CryptoJS.enc.Utf8.stringify(decrypt).toString();
    32. }

     3.在main.js文件中,引入方法,并注册为全局方法

    1. import { aes_encrypt, aes_decrypt } from '@/utils/aes_endecrypt.js';
    2. Vue.prototype.aes_encrypt = aes_encrypt;
    3. Vue.prototype.aes_decrypt = aes_decrypt;

    4.在页面中使用aes加密,解密

    1. var encrypt = this.aes_encrypt('123456')
    2. console.log('===encrypt===',encrypt);
    3. var decrypt = this.aes_decrypt(encrypt)
    4. console.log('===decrypt===',decrypt);

    二、第二种方式:直接引入插件

    1.在dcloud插件市场中搜索-传输加密,AES对称加密 (作者 ifloce)引入项目

    2.项目main.js文件中,注册全局组件

    1. import AES from '@/js_sdk/ar-aes/ar-aes.js'
    2. Vue.prototype.AES = AES.AES

    3. 在App.vue中,在methods中创建加密、解密方法

    1. methods: {
    2. //AES加密
    3. aesEncrypt(encrypt){
    4. //加密值
    5. var e = this.AES.encrypt(encrypt,'1234567891234567','1234567891234567')
    6. return e;
    7. },
    8. //AES解密
    9. aesDecrypt(decrypt){
    10. //解密值
    11. var d = this.AES.decrypt(decrypt,'1234567891234567','1234567891234567')
    12. return d;
    13. },
    14. },

    4.在页面中使用aes加密解密方式

    1. var encrypt = getApp().aesEncrypt('abcde123');
    2. console.log('===encrypt===',encrypt);
    3. var decrypt = getApp().aesDecrypt(encrypt);
    4. console.log('===decrypt===',decrypt);

     

  • 相关阅读:
    matlab 轨迹生成函数
    qml保姆级教程二:qml基本数据类型
    gin 基本使用
    《CGNF: CONDITIONAL GRAPH NEURAL FIELDS》阅读笔记
    JavaScript の querySelector 使用说明
    Windows网络与通信程序设计实验四:基于WSAEventSelect模型的通信仿真
    洛谷P4213 杜教筛模板
    Spring框架的原理及应用详解(二)
    Java学习笔记(三)
    JavaScript强制转换数字类型并设置默认值为0
  • 原文地址:https://blog.csdn.net/qq_38839887/article/details/126657113