当前位置: 首页 > news >正文

Laravel + UniApp AES加密/解密

后端 Laravel 

    public function encrypt($data, $method = 'AES-128-CBC', $passwd = 'jiami123456789', $options = 0, $iv = 'jiami12345678900'){return openssl_encrypt($data, $method, $passwd, $options, $iv);}public function decrypt($data, $method = 'AES-128-CBC', $passwd = 'jiami123456789', $options = 0, $iv = 'jiami12345678900'){return openssl_decrypt($data, $method, $passwd, $options, $iv);}

   使用

public function index(Request $request){// 字符串加密$d['string_encryption'] = $this->encrypt('hello');$d['string'] = $this->decrypt($d['string_encryption']);// 数组加密$data = ['name' => 'kay','age' => 20,];$d['array_encryption'] = $this->encrypt(json_encode($data));$d['array_decryption'] = $this->decrypt($d['array_encryption']);return $d;}

UniApp 实现

npm install crypto-js
// /static/crypto.js
/*** 工具类*/
import Vue from 'vue'
import CryptoJS from 'crypto-js'
// 确保密钥长度至少为16字节(AES-128要求)
let keyStr = "jiami12345678900";
let ivStr = "jiami12345678900";//加密
export function aes_encrypt(word) {try {var key = CryptoJS.enc.Utf8.parse(keyStr);var iv = CryptoJS.enc.Utf8.parse(ivStr);var encrypted = CryptoJS.AES.encrypt(word, key, {iv: iv,mode: CryptoJS.mode.CBC,padding: CryptoJS.pad.Pkcs7});return encrypted.toString();} catch (error) {console.error('加密失败:', error);throw error;}
}//解密  
export function aes_decrypt(word) {try {var key = CryptoJS.enc.Utf8.parse(keyStr);var iv = CryptoJS.enc.Utf8.parse(ivStr);// 完整处理base64格式,替换特殊字符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();} catch (error) {console.error('解密失败:', error);throw error;}
}

使用

import { aes_encrypt, aes_decrypt } from '@/static/crypto.js'
let encrypt = aes_encrypt('hello')
console.log('===加密===', encrypt);
var decrypt = aes_decrypt(encrypt)
console.log('===解密===', decrypt);

http://www.dtcms.com/a/409916.html

相关文章:

  • 5G开户时切片配置参数详解
  • 面向新质生产力,职业院校“人工智能”课程教学解决方案
  • wap网站如何做福建外贸网站
  • ElasticSearch-提高篇
  • 第6篇、Flask 表单处理与用户认证完全指南:从零到实战
  • Visual Studio 2013 Update 4 中文版安装步骤(带TFS支持)附安装包​
  • 珠海 网站建设注册安全工程师题库
  • 上手 cpp-httplib:轻量级 C++ HTTP 库的安装与实战指南
  • 突破文档型数据库迁移困境:金仓多模方案破解电子证照系统国产化难题
  • 网站手机客户端开发wordpress制造商单页
  • Net 》》C# 》》try finally 执行顺序
  • 在 Unity 项目中使用 FFMpeg 进行音频转码(WAV 转 MP3)
  • 使用Java将Word文件转换为PNG图片
  • 如何用Fail2ban保护Linux服务器?防止SSH暴力破解教程
  • 开源 C# 快速开发(五)自定义控件--仪表盘
  • 华为FreeClip 2耳夹耳机:让「戴着不摘」成为新的使用习惯
  • 算法继续刷起-2025年09月26日
  • AI笔记在学习与工作中的高效运用
  • QML学习笔记(十四)QML的自定义模块
  • ubuntu一键安装vscode: 使用官方 APT 仓库
  • python做网站的 框架企业邮箱什么样子
  • 学习游戏制作记录(爆炸敌人的制作)
  • 第三方软件登记测试机构:【软件登记测试机构HTML5测试技术】
  • 元宇宙的宠物经济:虚拟宠物的饲养与交易
  • 如何在 CentOS 7 上安装 bzip2-libs-1.0.6-13.el7.x86_64.rpm 文件
  • 做网站的盈利模式北京软件开发公司找和丰软件专业
  • 长视频分析模型 LongVU 论文内容总结与技术架构解析
  • Datawhale25年9月组队学习:llm-preview+Task4:微调大模型
  • Unity-动画目标匹配
  • 国标GB28181平台EasyGBS视频调阅功能在跨域安防监控中的核心应用