harmony-utils之SHA,SHA工具類
harmony-utils 簡(jiǎn)介與說明
[harmony-utils] 一款功能豐富且極易上手的HarmonyOS工具庫(kù),借助眾多實(shí)用工具類,致力于助力開發(fā)者迅速構(gòu)建鴻蒙應(yīng)用。其封裝的工具涵蓋了APP、設(shè)備、屏幕、授權(quán)、通知、線程間通信、彈框、吐司、生物認(rèn)證、用戶首選項(xiàng)、拍照、相冊(cè)、掃碼、文件、日志、異常捕獲、字符、字符串、數(shù)字、集合、日期、隨機(jī)、base64、加密、解密、JSON等一系列的功能和作,能夠滿足各種不同的開發(fā)需求。
[picker_utils] 是harmony-utils拆分出來的一個(gè)子庫(kù),包含 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);
}
SHA 算法簡(jiǎn)介
SHA(Secure Hash Algorithm)是由美國(guó)國(guó)家標(biāo)準(zhǔn)技術(shù)研究院(NIST)發(fā)布的密碼散列函數(shù)家族,用于生成數(shù)據(jù)的唯一性摘要。
其核心版本包括:
SHA-1:160位摘要,曾廣泛用于SSL/TLS和文件校驗(yàn),但因碰撞漏洞(2017年實(shí)際攻擊案例)已被淘汰。
SHA-2:(含SHA-256/384/512):采用分塊壓縮結(jié)構(gòu),抗碰撞性強(qiáng),現(xiàn)為區(qū)塊鏈(如比特幣)和數(shù)字證書的主流選擇。
SHA-3:基于海綿結(jié)構(gòu)的新一代算法,設(shè)計(jì)上區(qū)別于SHA-2,具備抗量子計(jì)算潛力。
SHA 應(yīng)用場(chǎng)景
數(shù)據(jù)完整性校驗(yàn):驗(yàn)證文件傳輸是否被篡改;
數(shù)字簽名:與公鑰加密結(jié)合實(shí)現(xiàn)身份認(rèn)證(SHA-256替代SHA-1成為主流);
密碼存儲(chǔ):系統(tǒng)存儲(chǔ)用戶密碼的哈希值而非明文(需結(jié)合鹽值增強(qiáng)安全)。
API方法與使用
digest SHA摘要
let str1 = "鴻蒙技術(shù)交流QQ群:1029219059";
let digest1 = await SHA.digest(str1);
LogUtil.error(`摘要,異步: ${digest1}`);
let digest2 = SHA.digestSync(str1);
LogUtil.error(`摘要,同步: ${digest2}`);
let digest3 = SHA.digestSync(str1, 'SHA512');
LogUtil.error(`摘要:t ${digest3}`);
let digest4 = SHA.digestSync(str1, 'SHA512', 'base64');
LogUtil.error(`摘要:t ${digest4}`);
digestSegment SHA摘要,分段
let str3 = "harmony-utils,一款高效的HarmonyOS工具包,封裝了常用工具類,提供一系列簡(jiǎn)單易用的方法。幫助開發(fā)者快速構(gòu)建鴻蒙應(yīng)用。gitee地址:https://gitee.com/tongyuyan/harmony-utils。github主頁地址:https://github.com/787107497。";
let digest1 = await SHA.digestSegment(str3);
LogUtil.error(`分段摘要,異步: ${digest1}`);
let digest2 = SHA.digestSegmentSync(str3);
LogUtil.error(`分段摘要,同步: ${digest2}`);
let digest3 = SHA.digestSegmentSync(str3, 'SHA256', 'base64', 256);
LogUtil.error(`分段摘要:t ${digest3}`);
hmac 消息認(rèn)證碼計(jì)算
let symKey = CryptoUtil.generateSymKeySync("HMAC|SHA256");
let str1 = "鴻蒙技術(shù)交流QQ群:1029219059";
let digest1 = await SHA.hmac(str1);
LogUtil.error(`消息認(rèn)證碼計(jì)算,異步: ${digest1}`);
let digest2 = SHA.hmacSync(str1);
LogUtil.error(`消息認(rèn)證碼計(jì)算,同步: ${digest2}`);
let digest3 = SHA.hmacSync(str1, 'SHA256', symKey);
LogUtil.error(`消息認(rèn)證碼計(jì)算:t ${digest3}`);
hmacSegment 消息認(rèn)證碼計(jì)算,分段
let symKey = CryptoUtil.generateSymKeySync("HMAC|SHA256");
let str3 = "harmony-utils,一款高效的HarmonyOS工具包,封裝了常用工具類,提供一系列簡(jiǎn)單易用的方法。幫助開發(fā)者快速構(gòu)建鴻蒙應(yīng)用。gitee地址:https://gitee.com/tongyuyan/harmony-utils。github主頁地址:https://github.com/787107497。";
let digest1 = await SHA.hmacSegment(str3);
LogUtil.error(`分段消息認(rèn)證碼計(jì)算,異步: ${digest1}`);
let digest2 = SHA.hmacSegmentSync(str3);
LogUtil.error(`分段消息認(rèn)證碼計(jì)算,同步: ${digest2}`);
let digest3 = SHA.hmacSegmentSync(str3, 'SHA256', symKey, 'hex', 256);
LogUtil.error(`分段消息認(rèn)證碼計(jì)算:t ${digest3}`);
創(chuàng)作不易,請(qǐng)給童長(zhǎng)老點(diǎn)贊
審核編輯 黃宇
-
SHA
+關(guān)注
關(guān)注
0文章
19瀏覽量
8570 -
Harmony
+關(guān)注
關(guān)注
0文章
108瀏覽量
3014
發(fā)布評(píng)論請(qǐng)先 登錄
評(píng)論