harmony-utils之SM3,SM3工具類
harmony-utils 簡介與說明
harmony-utils 一款功能豐富且極易上手的HarmonyOS工具庫,借助眾多實用工具類,致力于助力開發(fā)者迅速構(gòu)建鴻蒙應(yīng)用。其封裝的工具涵蓋了APP、設(shè)備、屏幕、授權(quán)、通知、線程間通信、彈框、吐司、生物認(rèn)證、用戶首選項、拍照、相冊、掃碼、文件、日志,異常捕獲、字符、字符串、數(shù)字、集合、日期、隨機、base64、加密、解密、JSON等一系列的功能和操作,能夠滿足各種不同的開發(fā)需求。
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年發(fā)布的商用密碼雜湊算法標(biāo)準(zhǔn)(GM/T 0004-2012),輸出256位固定長度哈希值,安全強度與SHA-256相當(dāng)。該算法采用Merkle-Damgard結(jié)構(gòu)設(shè)計,通過消息填充、分組擴展及32輪迭代壓縮實現(xiàn)數(shù)據(jù)混淆,具備抗碰撞攻擊和原像攻擊能力。作為國產(chǎn)密碼體系核心組件,SM3廣泛應(yīng)用于數(shù)字簽名、電子認(rèn)證、金融支付及物聯(lián)網(wǎng)安全等領(lǐng)域,并已納入ISO/IEC 10118-3國際標(biāo)準(zhǔn)。其高效性適配普通計算機與嵌入式設(shè)備,支撐了30余項國內(nèi)密碼行業(yè)標(biāo)準(zhǔn)的制定。
SM3 應(yīng)用場景
數(shù)字簽名:與SM2非對稱算法配合使用,對電子合同、政務(wù)文件等生成哈希摘要并簽名,確保數(shù)據(jù)完整性和不可抵賴性;
金融安全:用于網(wǎng)上銀行交易驗證、支付報文完整性保護(hù),國內(nèi)超80%金融機構(gòu)在關(guān)鍵系統(tǒng)中部署該算法;
物聯(lián)網(wǎng)認(rèn)證:為智能設(shè)備通信數(shù)據(jù)生成消息認(rèn)證碼(HMAC-SM3),防止工業(yè)級SSD、智能電網(wǎng)等場景的數(shù)據(jù)篡改;
密碼協(xié)議基礎(chǔ):支撐SSL/TLS、VPN等安全協(xié)議的密鑰派生與校驗,滿足國產(chǎn)化替代需求。
API方法與使用
digest SM3摘要
let str1 = "鴻蒙技術(shù)交流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工具包,封裝了常用工具類,提供一系列簡單易用的方法。幫助開發(fā)者快速構(gòu)建鴻蒙應(yīng)用。";
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消息認(rèn)證碼計算
let str1 = "鴻蒙技術(shù)交流QQ群:1029219059";
let symKey = CryptoUtil.generateSymKeySync("HMAC|SM3");
let digest1 = await SM3.hmac(str1, symKey);
LogUtil.error(`消息認(rèn)證碼計算,異步: ${digest1}`);
let digest2 = SM3.hmacSync(str1, symKey);
LogUtil.error(`消息認(rèn)證碼計算,同步1: ${digest2}`);
let digest3 = SM3.hmacSync(str1, symKey, 'base64');
LogUtil.error(`消息認(rèn)證碼計算,同步2: ${digest3}`);
hmacSegment SM3消息認(rèn)證碼計算,分段
let str2 = "harmony-utils,一款高效的HarmonyOS工具包,封裝了常用工具類,提供一系列簡單易用的方法。幫助開發(fā)者快速構(gòu)建鴻蒙應(yīng)用。";
let symKey = CryptoUtil.generateSymKeySync("HMAC|SM3");
let digest1 = await SM3.hmacSegment(str2, symKey);
LogUtil.error(`分段消息認(rèn)證碼計算,異步: ${digest1}`);
let digest2 = SM3.hmacSegmentSync(str2, symKey);
LogUtil.error(`分段消息認(rèn)證碼計算,同步1: ${digest2}`);
let digest3 = SM3.hmacSegmentSync(str2, symKey, 'hex', 256);
LogUtil.error(`分段消息認(rèn)證碼計算,同步2: ${digest3}`);
創(chuàng)作不易,請給童長老點贊
-
SM3算法
+關(guān)注
關(guān)注
0文章
5瀏覽量
3253 -
HarmonyOS
+關(guān)注
關(guān)注
80文章
2126瀏覽量
33154
發(fā)布評論請先 登錄
評論