码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 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);

     

  • 相关阅读:
    什么是HTML5中的Web存储API,包括LocalStorage和SessionStorage?它们的区别是什么?
    Nacos配置中心集群原理及源码分析
    高精度PWM脉宽调制信号转模拟信号隔离变送器1Hz~10KHz转0-5V/0-10V/1-5V/0-10mA/0-20mA/4-20mA
    关于医疗器械的算法、协议开发(五)
    基于QML和JavaScript的嵌入式自助零售服务终端界面:整合SQLite、OAuth 2.0与Qt Linguist实现多功能解决方案(代码示例))
    SQL注入
    mybatis-plus学习笔记
    【iOS】计算器仿写
    LCR 136. 删除链表的节点
    基于web的老年保健品销售系统/保健品销售系统
  • 原文地址:https://blog.csdn.net/qq_38839887/article/details/126657113
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号