鸿蒙Next开发AES128加密,解密算法

2024-08-21 00:36

本文主要是介绍鸿蒙Next开发AES128加密,解密算法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

以前Android用的是服务器端拷过来的代码,是java的,自然没办法适配鸿蒙是ts的语法。自己翻译着写也是一脸懵逼。
下面我提供下加密的代码
class AES128ECB{/*** 使用AES对称密钥进行加密,ECB分组* ECB、CBC加密模式,AES128,明文需为128位byte字节,即16位字符串,明文长度不是128位整数倍,必须使用填充方法补足* @param content* @param publicKey* @returns 16进制加密结果字符串*/async Encrypt(content: string): Promise<string> {let keys = this.base64Trans(‘你的key’)let pkBlob: cryptoFramework.DataBlob = { data: base64Util.decodeSync(keys) };// 创建密钥对象let generator = cryptoFramework.createSymKeyGenerator('AES128');// 导入外部密钥let globalKey = await generator.convertKey(pkBlob);let mode = cryptoFramework.CryptoMode.ENCRYPT_MODE;//这里以AES加解密为例,支持AES、SM4、3DES,创建加解密对象let globalCipher = cryptoFramework.createCipher('AES128|ECB|PKCS7');await globalCipher.init(mode, globalKey, null);//将传入的string格式的密钥转为Uint8Array数组let plainText: cryptoFramework.DataBlob = { data: stringToUint8Array(content) };let encryptData: cryptoFramework.DataBlob = await globalCipher.doFinal(plainText)//将加密结果转换为16进制格式,用于保存或者传递return uint8ArrayToHexString(encryptData.data).toUpperCase()}base64Trans(keys:string) {let base64 = new util.Base64Helper();let arr = new Uint8Array(buffer.from(keys).buffer)keys = base64.encodeToStringSync(arr);return keys}}export default new AES128ECB();

有需要解密代码的可私信。

这篇关于鸿蒙Next开发AES128加密,解密算法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1091621

相关文章

使用Python开发一个带EPUB转换功能的Markdown编辑器

《使用Python开发一个带EPUB转换功能的Markdown编辑器》Markdown因其简单易用和强大的格式支持,成为了写作者、开发者及内容创作者的首选格式,本文将通过Python开发一个Markd... 目录应用概览代码结构与核心组件1. 初始化与布局 (__init__)2. 工具栏 (setup_t

openCV中KNN算法的实现

《openCV中KNN算法的实现》KNN算法是一种简单且常用的分类算法,本文主要介绍了openCV中KNN算法的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录KNN算法流程使用OpenCV实现KNNOpenCV 是一个开源的跨平台计算机视觉库,它提供了各

Spring Shell 命令行实现交互式Shell应用开发

《SpringShell命令行实现交互式Shell应用开发》本文主要介绍了SpringShell命令行实现交互式Shell应用开发,能够帮助开发者快速构建功能丰富的命令行应用程序,具有一定的参考价... 目录引言一、Spring Shell概述二、创建命令类三、命令参数处理四、命令分组与帮助系统五、自定义S

Java中使用Hutool进行AES加密解密的方法举例

《Java中使用Hutool进行AES加密解密的方法举例》AES是一种对称加密,所谓对称加密就是加密与解密使用的秘钥是一个,下面:本文主要介绍Java中使用Hutool进行AES加密解密的相关资料... 目录前言一、Hutool简介与引入1.1 Hutool简介1.2 引入Hutool二、AES加密解密基础

鸿蒙中Axios数据请求的封装和配置方法

《鸿蒙中Axios数据请求的封装和配置方法》:本文主要介绍鸿蒙中Axios数据请求的封装和配置方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1.配置权限 应用级权限和系统级权限2.配置网络请求的代码3.下载在Entry中 下载AxIOS4.封装Htt

鸿蒙中@State的原理使用详解(HarmonyOS 5)

《鸿蒙中@State的原理使用详解(HarmonyOS5)》@State是HarmonyOSArkTS框架中用于管理组件状态的核心装饰器,其核心作用是实现数据驱动UI的响应式编程模式,本文给大家介绍... 目录一、@State在鸿蒙中是做什么的?二、@Spythontate的基本原理1. 依赖关系的收集2.

Python通过模块化开发优化代码的技巧分享

《Python通过模块化开发优化代码的技巧分享》模块化开发就是把代码拆成一个个“零件”,该封装封装,该拆分拆分,下面小编就来和大家简单聊聊python如何用模块化开发进行代码优化吧... 目录什么是模块化开发如何拆分代码改进版:拆分成模块让模块更强大:使用 __init__.py你一定会遇到的问题模www.

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

springboot+dubbo实现时间轮算法

《springboot+dubbo实现时间轮算法》时间轮是一种高效利用线程资源进行批量化调度的算法,本文主要介绍了springboot+dubbo实现时间轮算法,文中通过示例代码介绍的非常详细,对大家... 目录前言一、参数说明二、具体实现1、HashedwheelTimer2、createWheel3、n

使用Python开发一个简单的本地图片服务器

《使用Python开发一个简单的本地图片服务器》本文介绍了如何结合wxPython构建的图形用户界面GUI和Python内建的Web服务器功能,在本地网络中搭建一个私人的,即开即用的网页相册,文中的示... 目录项目目标核心技术栈代码深度解析完整代码工作流程主要功能与优势潜在改进与思考运行结果总结你是否曾经