harmony-utils之MD5,MD5工具類
harmony-utils 簡(jiǎn)介與說明
[harmony-utils] 一款功能豐富且極易上手的HarmonyOS工具庫,借助眾多實(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è)子庫,包含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);
}
MD5 算法簡(jiǎn)介
MD5(Message-Digest Algorithm 5)是由Ronald Rivest于1991年設(shè)計(jì)的密碼散列函數(shù),可將任意長度數(shù)據(jù)生成128位(16字節(jié))的固定長度哈希值。其核心通過?填充-分塊-循環(huán)壓縮?流程實(shí)現(xiàn):先對(duì)輸入補(bǔ)位至512位倍數(shù),再分塊進(jìn)行4輪非線性運(yùn)算(每輪16次操作),最終輸出唯一性摘要。
該算法曾廣泛用于文件完整性校驗(yàn)(如軟件包校驗(yàn))、密碼存儲(chǔ)及數(shù)字證書簽名。但因存在碰撞漏洞(可人為構(gòu)造相同哈希的不同數(shù)據(jù)),自2004年被證實(shí)不抗碰撞攻擊后,逐步被SHA-256等更安全算法替代。目前仍見于非敏感場(chǎng)景如緩存標(biāo)識(shí)或數(shù)據(jù)去重。因MD5存在碰撞攻擊風(fēng)險(xiǎn)(王小云團(tuán)隊(duì)2004年破解),金融、政務(wù)等關(guān)鍵領(lǐng)域已禁用,推薦改用SM3/SHA-256。
API方法與使用
digest MD5摘要
let str1 = "鴻蒙技術(shù)交流QQ群:1029219059";
let digest1 = await MD5.digest(str1);
LogUtil.error(`摘要,異步: ${digest1}`);
let digest2 = MD5.digestSync(str1);
LogUtil.error(`摘要,同步1: ${digest2}`);
let digest3 = MD5.digestSync(str1, 'base64');
LogUtil.error(`摘要,同步2: ${digest3}`);
digestSegment MD5摘要,分段
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 MD5.digestSegment(str3);
LogUtil.error(`分段摘要,異步: ${digest1}`);
let digest2 = MD5.digestSegmentSync(str3);
LogUtil.error(`分段摘要,同步1: ${digest2}`);
let digest3 = MD5.digestSegmentSync(str3, 'base64', 256);
LogUtil.error(`分段摘要,同步2: ${digest3}`);
hmac 消息認(rèn)證碼計(jì)算
let symKey = CryptoUtil.generateSymKeySync("AES256");
let str1 = "鴻蒙技術(shù)交流QQ群:1029219059";
let digest1 = await MD5.hmac(str1, symKey);
LogUtil.error(`消息認(rèn)證碼計(jì)算,異步: ${digest1}`);
let digest2 = MD5.hmacSync(str1, symKey);
LogUtil.error(`消息認(rèn)證碼計(jì)算,同步1: ${digest2}`);
let digest3 = MD5.hmacSync(str1, symKey, 'base64');
LogUtil.error(`消息認(rèn)證碼計(jì)算,同步2: ${digest3}`);
hmacSegment 消息認(rèn)證碼計(jì)算,分段
let symKey = CryptoUtil.generateSymKeySync("AES256");
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 MD5.hmacSegment(str3, symKey);
LogUtil.error(`分段消息認(rèn)證碼計(jì)算,異步: ${digest1}`);
let digest2 = MD5.hmacSegmentSync(str3, symKey);
LogUtil.error(`分段消息認(rèn)證碼計(jì)算,同步1: ${digest2}`);
let digest3 = MD5.hmacSegmentSync(str3, symKey, 'hex', 256);
LogUtil.error(`分段消息認(rèn)證碼計(jì)算,同步2: ${digest3}`);
創(chuàng)作不易,請(qǐng)給童長老點(diǎn)贊
審核編輯 黃宇
-
md5
+關(guān)注
關(guān)注
0文章
30瀏覽量
21071 -
HarmonyOS
+關(guān)注
關(guān)注
80文章
2143瀏覽量
32637
發(fā)布評(píng)論請(qǐng)先 登錄
harmony-utils之ToastUtil,吐司工具類
harmony-utils之TypeUtil,類型檢查工具類
harmony-utils之WantUtil,Want工具類
harmony-utils之WindowUtil,窗口相關(guān)工具類
harmony-utils之Base64Util,Base64工具類
harmony-utils之SHA,SHA工具類
harmony-utils之SM3,SM3工具類
harmony-utils之PickerUtil,拍照、文件選擇和保存,工具類
harmony-utils之AuthUtil,生物認(rèn)證相關(guān)工具類
harmony-utils之AssetUtil,關(guān)鍵資產(chǎn)存儲(chǔ)服務(wù)工具類
harmony-utils之ArrayUtil,集合工具類
harmony-utils之TempUtil,溫度轉(zhuǎn)換工具類
PostgreSQL將不再支持MD5密碼
開源物聯(lián)網(wǎng)技術(shù)--哈希算法MD5加密功能技術(shù)分享

評(píng)論