鸿蒙三方库 | harmony-utils之EncryptUtil Base64编解码详解 前言Base64编码是将二进制数据转换为ASCII字符串的常用方法广泛应用于数据传输、图片嵌入、认证令牌等场景。pura/harmony-utils的EncryptUtil封装了Base64编解码方法。本文将从API说明、代码实战、进阶用法、常见问题等多个维度进行全面讲解帮助开发者快速掌握并应用到实际项目中。一、Base64核心APIEncryptUtil提供了以下Base64方法方法说明返回类型使用场景encodeBase64(str)Base64编码string数据编码decodeBase64(str)Base64解码string数据解码encodeBase64ToArrayBuffer(str)编码为ArrayBufferArrayBuffer二进制处理decodeBase64FromArrayBuffer(buffer)从ArrayBuffer解码string二进制解码1.1 核心特性简洁易用封装复杂逻辑为一行调用降低使用门槛类型安全完整的TypeScript类型定义编译期即可发现错误异常处理内置异常捕获机制避免运行时崩溃双向转换支持字符串和ArrayBuffer两种编解码1.2 Base64编码对照原文Base64编码说明HelloSGVsbG8基本编码ABCQUJD无填充你好5L2g5aW9中文编码二、完整使用步骤2.1 安装依赖ohpminstallpura/harmony-utils2.2 Base64编码import{EncryptUtil}frompura/harmony-utils;Button(Base64编码).width(100%).onClick((){try{letoriginalHello harmony-utils!;letencodedEncryptUtil.encodeBase64(original);this.result原文:${original}\n编码:${encoded};}catch(e){this.result异常: e;}})2.3 Base64解码Button(Base64解码).width(100%).onClick((){try{letencodedSGVsbG8gaGFybW9ueS11dGlscyE;letdecodedEncryptUtil.decodeBase64(encoded);this.result编码:${encoded}\n解码:${decoded};}catch(e){this.result异常: e;}})三、完整页面示例import{EncryptUtil}frompura/harmony-utils;EntryComponentstruct Base64Demo{Stateresult:string;build(){Column({space:12}){Button(Base64编码).width(100%).onClick((){letencodedEncryptUtil.encodeBase64(Hello harmony-utils!);this.result编码:${encoded};});Button(Base64解码).width(100%).onClick((){letdecodedEncryptUtil.decodeBase64(SGVsbG8);this.result解码:${decoded};});Text(this.result).fontSize(14).fontColor(#333333)}.padding(16)}}四、进阶用法4.1 图片Base64嵌入import{EncryptUtil,ImageUtil}frompura/harmony-utils;asyncfunctionimageToBase64(pixelMap:PixelMap):Promisestring{letbase64awaitImageUtil.pixelMapToBase64(pixelMap);returndata:image/png;base64,${base64};}4.2 认证令牌functioncreateBasicAuth(username:string,password:string):string{letcredentials${username}:${password};returnBasic${EncryptUtil.encodeBase64(credentials)};}五、注意事项编码膨胀Base64编码后体积增加约33%非加密Base64是编码不是加密不提供安全性中文处理中文编码需要先转为UTF-8字节初始化依赖使用前需确保AppUtil.init()已调用填充字符Base64编码末尾可能有填充六、常见问题Q1: Base64编码是加密吗不是Base64是编码方式任何人都可以解码不能用于保护数据。Q2: 编码后数据变大多少约增大33%每3个字节编码为4个字符。Q3: 解码失败会怎样安全解码会返回空字符串或抛出可控异常。Q4: 如何处理大文件的Base64大文件建议分块编码避免内存溢出。总结EncryptUtil的Base64编解码方法为数据编码提供了便捷支持。本文详细介绍了核心API、使用步骤、完整示例、进阶用法以及常见问题的解决方案。开发者可以利用这些方法实现数据编码、图片嵌入等功能。本文基于pura/harmony-utils工具库更多功能请参考官方文档与后续系列文章。