harmony-utils之SM3,SM3工具類
harmony-utils 簡介與說明
harmony-utils 一款功能豐富且極易上手的HarmonyOS工具庫,借助眾多實用工具類,致力于助力開發者迅速構建鴻蒙應用。其封裝的工具涵蓋了APP、設備、屏幕、授權、通知、線程間通信、彈框、吐司、生物認證、用戶首選項、拍照、相冊、掃碼、文件、日志,異常捕獲、字符、字符串、數字、集合、日期、隨機、base64、加密、解密、JSON等一系列的功能和操作,能夠滿足各種不同的開發需求。
picker_utils 是harmony-utils拆分出來的一個子庫,包含PickerUtil、PhotoHelper、ScanUtil。
下載安裝ohpm i @pura/harmony-utils
ohpm i @pura/picker_utils
//全局初始化方法,在UIAbility的onCreate方法中初始化 AppUtil.init()
onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
AppUtil.init(this.context);
}
SM3 算法簡介
SM3是中國國家密碼管理局2010年發布的商用密碼雜湊算法標準(GM/T 0004-2012),輸出256位固定長度哈希值,安全強度與SHA-256相當。該算法采用Merkle-Damgard結構設計,通過消息填充、分組擴展及32輪迭代壓縮實現數據混淆,具備抗碰撞攻擊和原像攻擊能力。作為國產密碼體系核心組件,SM3廣泛應用于數字簽名、電子認證、金融支付及物聯網安全等領域,并已納入ISO/IEC 10118-3國際標準。其高效性適配普通計算機與嵌入式設備,支撐了30余項國內密碼行業標準的制定。
SM3 應用場景
數字簽名:與SM2非對稱算法配合使用,對電子合同、政務文件等生成哈希摘要并簽名,確保數據完整性和不可抵賴性;
金融安全:用于網上銀行交易驗證、支付報文完整性保護,國內超80%金融機構在關鍵系統中部署該算法;
物聯網認證:為智能設備通信數據生成消息認證碼(HMAC-SM3),防止工業級SSD、智能電網等場景的數據篡改;
密碼協議基礎:支撐SSL/TLS、VPN等安全協議的密鑰派生與校驗,滿足國產化替代需求。
API方法與使用
digest SM3摘要
let str1 = "鴻蒙技術交流QQ群:1029219059";
let digest1 = await SM3.digest(str1);
LogUtil.error(`摘要,異步: ${digest1}`);
let digest2 = SM3.digestSync(str1,'hex');
LogUtil.error(`摘要,同步1: ${digest2}`);
let digest3 = SM3.digestSync(str1, 'base64');
LogUtil.error(`摘要,同步2: ${digest3}`);
digestSegment SM3分段摘要
let str3 = "harmony-utils,一款高效的HarmonyOS工具包,封裝了常用工具類,提供一系列簡單易用的方法。幫助開發者快速構建鴻蒙應用。";
let digest1 = await SM3.digestSegment(str3);
LogUtil.error(`分段摘要,異步: ${digest1}`);
let digest2 = SM3.digestSegmentSync(str3);
LogUtil.error(`分段摘要,同步1: ${digest2}`);
let digest3 = SM3.digestSegmentSync(str3, 'base64', 256);
LogUtil.error(`分段摘要,同步2: ${digest3}`);
hmac SM3消息認證碼計算
let str1 = "鴻蒙技術交流QQ群:1029219059";
let symKey = CryptoUtil.generateSymKeySync("HMAC|SM3");
let digest1 = await SM3.hmac(str1, symKey);
LogUtil.error(`消息認證碼計算,異步: ${digest1}`);
let digest2 = SM3.hmacSync(str1, symKey);
LogUtil.error(`消息認證碼計算,同步1: ${digest2}`);
let digest3 = SM3.hmacSync(str1, symKey, 'base64');
LogUtil.error(`消息認證碼計算,同步2: ${digest3}`);
hmacSegment SM3消息認證碼計算,分段
let str2 = "harmony-utils,一款高效的HarmonyOS工具包,封裝了常用工具類,提供一系列簡單易用的方法。幫助開發者快速構建鴻蒙應用。";
let symKey = CryptoUtil.generateSymKeySync("HMAC|SM3");
let digest1 = await SM3.hmacSegment(str2, symKey);
LogUtil.error(`分段消息認證碼計算,異步: ${digest1}`);
let digest2 = SM3.hmacSegmentSync(str2, symKey);
LogUtil.error(`分段消息認證碼計算,同步1: ${digest2}`);
let digest3 = SM3.hmacSegmentSync(str2, symKey, 'hex', 256);
LogUtil.error(`分段消息認證碼計算,同步2: ${digest3}`);
創作不易,請給童長老點贊
-
SM3算法
+關注
關注
0文章
5瀏覽量
3236 -
HarmonyOS
+關注
關注
80文章
2148瀏覽量
32537
發布評論請先 登錄
harmony-utils之SM4,SM4加解密
harmony-utils之PickerUtil,拍照、文件選擇和保存,工具類
HarmonyOS入門指南
harmony-utils之AuthUtil,生物認證相關工具類
harmony-utils之ArrayUtil,集合工具類
如何使用第三方庫中的@pura/harmony-utils(V1.3.3)申請授權工具類一

海川SM5701規格書
迅為3A6000開發板/龍芯3A6000與龍芯3A5000等龍架構處理器軟件兼容
迅為3A6000_7A2000開發板龍芯全國產處理器與龍芯 3A5000完全兼容
SM320F2808-EP,SM320F2806-EP,SM320F2801-EP數字信號處理器數據表

SM320C6711-EP,SM320C6711B-EP,SM320C6711C-EP,SM320C6711D-EP浮點數字信號處理器數據

評論