鸿蒙三方库 | harmony-utils之EncryptUtil RSA非对称加密详解
前言RSA是非对称加密算法使用公钥加密、私钥解密适用于密钥交换、数字签名等场景。pura/harmony-utils的EncryptUtil封装了RSA加解密方法。本文将从API说明、代码实战、进阶用法、常见问题等多个维度进行全面讲解帮助开发者快速掌握并应用到实际项目中。一、RSA加解密核心APIEncryptUtil提供了以下RSA方法方法说明返回类型使用场景encryptRSA(data, publicKey)RSA公钥加密string数据加密decryptRSA(data, privateKey)RSA私钥解密string数据解密generateRSAKeyPair()生成RSA密钥对KeyPair密钥生成1.1 核心特性简洁易用封装复杂逻辑为一行调用降低使用门槛类型安全完整的TypeScript类型定义编译期即可发现错误异常处理内置异常捕获机制避免运行时崩溃密钥对生成支持一键生成RSA公私钥对1.2 RSA与AES对比特性RSAAES密钥类型公钥私钥单一密钥速度慢快数据长度有限制无限制适用场景密钥交换数据加密二、完整使用步骤2.1 安装依赖ohpminstallpura/harmony-utils2.2 生成密钥对import{EncryptUtil}frompura/harmony-utils;Button(生成RSA密钥对).width(100%).onClick(async(){try{letkeyPairawaitEncryptUtil.generateRSAKeyPair();this.result公钥:${keyPair.publicKey.substring(0,30)}...\n私钥:${keyPair.privateKey.substring(0,30)}...;}catch(e){this.result异常: e;}})2.3 RSA加密Button(RSA公钥加密).width(100%).onClick(async(){try{letplaintextHello RSA!;letpublicKeyMIIBIjANBg...;letencryptedawaitEncryptUtil.encryptRSA(plaintext,publicKey);this.result原文:${plaintext}\n密文:${encrypted};}catch(e){this.result异常: e;}})三、完整页面示例import{EncryptUtil}frompura/harmony-utils;EntryComponentstruct RSADemo{Stateresult:string;privatepublicKey:string;privateprivateKey:string;build(){Column({space:12}){Button(生成密钥对).width(100%).onClick(async(){letkeyPairawaitEncryptUtil.generateRSAKeyPair();this.publicKeykeyPair.publicKey;this.privateKeykeyPair.privateKey;this.result密钥对已生成;});Button(加密解密).width(100%).onClick(async(){letencryptedawaitEncryptUtil.encryptRSA(Hello,this.publicKey);letdecryptedawaitEncryptUtil.decryptRSA(encrypted,this.privateKey);this.result原文:${decrypted};});Text(this.result).fontSize(14).fontColor(#333333)}.padding(16)}}四、进阶用法4.1 混合加密RSAAESimport{EncryptUtil}frompura/harmony-utils;asyncfunctionhybridEncrypt(data:string,publicKey:string):Promisestring{letaesKeyRandomUtil.randomString(16);letencryptedDataawaitEncryptUtil.encryptAES(data,aesKey);letencryptedKeyawaitEncryptUtil.encryptRSA(aesKey,publicKey);returnJSON.stringify({key:encryptedKey,data:encryptedData});}4.2 数字签名asyncfunctionsignData(data:string,privateKey:string):Promisestring{lethashawaitEncryptUtil.sha256(data);returnawaitEncryptUtil.encryptRSA(hash,privateKey);}五、注意事项数据长度限制RSA加密有数据长度限制通常不超过密钥长度性能问题RSA比AES慢得多不适合加密大量数据密钥安全私钥必须安全存储不能泄露初始化依赖使用前需确保AppUtil.init()已调用混合加密大数据场景建议使用RSAAES混合加密六、常见问题Q1: RSA加密数据长度有限制吗有限制加密数据长度不能超过密钥长度减去填充长度。Q2: 公钥和私钥可以互换使用吗可以公钥加密私钥解密或私钥加密公钥解密用于签名。Q3: RSA密钥长度推荐多少推荐2048位或以上1024位已不安全。Q4: 如何安全存储私钥建议使用AssetUtil或安全存储不要明文存储。总结EncryptUtil的RSA加解密方法为非对称加密提供了便捷支持。本文详细介绍了核心API、使用步骤、完整示例、进阶用法以及常见问题的解决方案。开发者可以利用RSA实现密钥交换、数字签名等功能。本文基于pura/harmony-utils工具库更多功能请参考官方文档与后续系列文章。

相关新闻

开源框架选型对比:vLLM vs Triton vs llama.cpp 在不同部署规模下的适配评估

开源框架选型对比:vLLM vs Triton vs llama.cpp 在不同部署规模下的适配评估

开源框架选型对比:vLLM vs Triton vs llama.cpp 在不同部署规模下的适配评估 一、开源推理框架选型的核心矛盾:单节点最优 vs 集群化 vs 边缘适配 开源推理框架的选型需要同时考虑三个维度的适配性:单节点性能(吞吐/延迟&#xff…

2026/7/28 14:03:39 阅读更多 →
工业信号干扰防护与光耦隔离技术实战

工业信号干扰防护与光耦隔离技术实战

1. 工业环境中的信号干扰挑战在电机控制、自动化产线等典型工业场景中,电磁干扰(EMI)就像一场永不间断的"电子风暴"。我曾在某汽车零部件工厂亲眼目睹:当大型冲压机启动时,周围传感器的RS485信号波形瞬间变成…

2026/7/28 14:02:39 阅读更多 →
物联网设备安全方案:SE050与PIC18F45K50的协同设计

物联网设备安全方案:SE050与PIC18F45K50的协同设计

1. 为什么物联网设备需要专用安全芯片?在智能家居和工业物联网项目中,开发者常面临一个两难选择:使用通用MCU实现基础功能虽成本低廉,但安全防护薄弱;而采用复杂的安全方案又会大幅提高BOM成本和开发门槛。这正是SE050…

2026/7/28 14:02:39 阅读更多 →

最新新闻

git操作命令

git操作命令

1 首次克隆 代码git clone 2 查询本地状态git status3 添加缓存 添加指定文件git add <文件名>添加 所有git add .删除缓存1 不会删除物理文件&#xff0c;只是将已经add的文件删除git rm --cached <文件名 >2 从缓存区删除某一个目录下所有文件git rm -r --cach…

2026/7/28 14:11:47 阅读更多 →
Comfy-Photoshop-SD:5步实现AI绘画与Photoshop无缝集成的终极方案

Comfy-Photoshop-SD:5步实现AI绘画与Photoshop无缝集成的终极方案

Comfy-Photoshop-SD&#xff1a;5步实现AI绘画与Photoshop无缝集成的终极方案 【免费下载链接】Comfy-Photoshop-SD Download this extension via the ComfyUI manager to establish a connection between ComfyUI and the Auto-Photoshop-SD plugin in Photoshop. https://git…

2026/7/28 14:11:47 阅读更多 →
万能视频格式转换器 v 2018 全能版

万能视频格式转换器 v 2018 全能版

万能视频格式转换器是一款强大的视频格式转换软件&#xff0c;支持多种视频格式的转换&#xff0c;这款软件可以拍摄你自己喜欢的DIY视频&#xff0c;也可以将RM、RMVB、AVI、WMV、MPG 、MPEG、FLV、3GP、MP4、SWF、ASF、DIVX、XVID、3GP2、FLV1、MPEG1、MPEG2、MPEG3、MPEG4、…

2026/7/28 14:11:47 阅读更多 →
laravel 创建中间件

laravel 创建中间件

1&#xff0c;生成中间件:php artisan make:middleware LoginMiddleware 目录在blog\app\Http\Middleware\LoginMiddleware.php 2&#xff0c;注册中间件。blog\app\Http\Kernel.php protected $routeMiddleware [ ‘auth’ > \Illuminate\Auth\Middleware\Authenticate::c…

2026/7/28 14:11:47 阅读更多 →
终极缠论量化分析插件:让通达信自动识别买卖信号

终极缠论量化分析插件:让通达信自动识别买卖信号

终极缠论量化分析插件&#xff1a;让通达信自动识别买卖信号 【免费下载链接】Indicator 通达信缠论可视化分析插件 项目地址: https://gitcode.com/gh_mirrors/ind/Indicator 你是否还在为复杂的缠论分析而头疼&#xff1f;是否想要一个能够自动识别中枢、线段和买卖点…

2026/7/28 14:11:47 阅读更多 →
AgentRun知识库功能:RAG架构与智能体长期记忆实践

AgentRun知识库功能:RAG架构与智能体长期记忆实践

1. 项目概述&#xff1a;AgentRun知识库功能的核心价值 去年在开发一个智能客服系统时&#xff0c;我深刻体会到传统对话机器人的局限性——它们就像个健忘症患者&#xff0c;每次对话都要从头开始。这正是函数计算平台AgentRun最新上线的知识库功能要解决的核心痛点。这个功能…

2026/7/28 14:10:47 阅读更多 →

日新闻

告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿&#xff01;3步让你的暗影精灵笔记本重获新生 【免费下载链接】OmenSuperHub Control Omen laptop performance, fan speeds, and keyboard lighting, and unlock power limits. 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub 你是否也曾为官方Om…

2026/7/28 0:00:43 阅读更多 →
RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

做 RAG 的人应该都踩过这个致命的坑&#xff1a;把几百页的财报、法规、技术手册扔给向量库&#xff0c;问一个具体问题&#xff0c;搜出来的全是沾边但没用的内容 —— 关键信息要么被硬切块拆碎了&#xff0c;要么藏在几十条结果的最下面。语义相似≠真正相关&#xff0c;这个…

2026/7/28 0:00:43 阅读更多 →
抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

2026年做短视频运营&#xff0c;从抖音上扒文案早就不是偷偷抄笔记的事了。我刚开始做内容的时候&#xff0c;每天刷半小时抖音&#xff0c;手动把爆款视频的口播敲进备忘录&#xff0c;一条2分钟的视频得花十来分钟&#xff0c;碰到语速快的还要反复回听。后来试了一圈工具&am…

2026/7/28 0:00:43 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档&#xff0c;可以直接使用&#xff01;系统支持图片、视频、摄像头等多种方式检测裂缝&#xff0c;功能强大实用。 1数据集6000张 8各类别

2026/7/28 12:04:22 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像&#xff01; pubg绝地求生目标检测数据集 1分类&#xff1a;e_body&#xff0c;14905个标签&#xff0c;txt格式 共计14244张图&#xff0c;99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/28 8:29:16 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别&#xff1a; allies enemy tag图片总量&#xff1a;7247张训练集&#xff1a;5139张验证集&#xff1a;1425张测试集&#xff1a;683张标注状态&#xff1a;全部已标注&#xff0c;即拿即用数据格式&#xff1a;支持YOLO格式及其他格式&#…

2026/7/28 5:03:42 阅读更多 →

月新闻