harmony-utils之MD5,MD5工具類
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);
}
MD5 算法簡介
MD5(Message-Digest Algorithm 5)是由Ronald Rivest于1991年設計的密碼散列函數,可將任意長度數據生成128位(16字節)的固定長度哈希值。其核心通過?填充-分塊-循環壓縮?流程實現:先對輸入補位至512位倍數,再分塊進行4輪非線性運算(每輪16次操作),最終輸出唯一性摘要。
該算法曾廣泛用于文件完整性校驗(如軟件包校驗)、密碼存儲及數字證書簽名。但因存在碰撞漏洞(可人為構造相同哈希的不同數據),自2004年被證實不抗碰撞攻擊后,逐步被SHA-256等更安全算法替代。目前仍見于非敏感場景如緩存標識或數據去重。因MD5存在碰撞攻擊風險(王小云團隊2004年破解),金融、政務等關鍵領域已禁用,推薦改用SM3/SHA-256。
API方法與使用
digest MD5摘要
let str1 = "鴻蒙技術交流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工具包,封裝了常用工具類,提供一系列簡單易用的方法。幫助開發者快速構建鴻蒙應用。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 消息認證碼計算
let symKey = CryptoUtil.generateSymKeySync("AES256");
let str1 = "鴻蒙技術交流QQ群:1029219059";
let digest1 = await MD5.hmac(str1, symKey);
LogUtil.error(`消息認證碼計算,異步: ${digest1}`);
let digest2 = MD5.hmacSync(str1, symKey);
LogUtil.error(`消息認證碼計算,同步1: ${digest2}`);
let digest3 = MD5.hmacSync(str1, symKey, 'base64');
LogUtil.error(`消息認證碼計算,同步2: ${digest3}`);
hmacSegment 消息認證碼計算,分段
let symKey = CryptoUtil.generateSymKeySync("AES256");
let str3 = "harmony-utils,一款高效的HarmonyOS工具包,封裝了常用工具類,提供一系列簡單易用的方法。幫助開發者快速構建鴻蒙應用。gitee地址:https://gitee.com/tongyuyan/harmony-utils。github主頁地址:https://github.com/787107497。";
let digest1 = await MD5.hmacSegment(str3, symKey);
LogUtil.error(`分段消息認證碼計算,異步: ${digest1}`);
let digest2 = MD5.hmacSegmentSync(str3, symKey);
LogUtil.error(`分段消息認證碼計算,同步1: ${digest2}`);
let digest3 = MD5.hmacSegmentSync(str3, symKey, 'hex', 256);
LogUtil.error(`分段消息認證碼計算,同步2: ${digest3}`);
創作不易,請給童長老點贊
審核編輯 黃宇
-
md5
+關注
關注
0文章
30瀏覽量
21071 -
HarmonyOS
+關注
關注
80文章
2143瀏覽量
32602
發布評論請先 登錄
harmony-utils之ToastUtil,吐司工具類
harmony-utils之TypeUtil,類型檢查工具類
harmony-utils之WantUtil,Want工具類
harmony-utils之WindowUtil,窗口相關工具類
harmony-utils之Base64Util,Base64工具類
harmony-utils之SHA,SHA工具類
harmony-utils之SM3,SM3工具類
harmony-utils之PickerUtil,拍照、文件選擇和保存,工具類
harmony-utils之AuthUtil,生物認證相關工具類
harmony-utils之ArrayUtil,集合工具類
PostgreSQL將不再支持MD5密碼
開源物聯網技術--哈希算法MD5加密功能技術分享

評論