91在线观看视频-91在线观看视频-91在线观看免费视频-91在线观看免费-欧美第二页-欧美第1页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

harmony-utils之AES,AES加解密

童長(zhǎng)老 ? 來源:jf_14594073 ? 作者:jf_14594073 ? 2025-06-30 17:30 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

harmony-utils之AES,AES加解密

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);
 }

AES 算法簡(jiǎn)介


AES(高級(jí)加密標(biāo)準(zhǔn))是 NIST 于 2001 年發(fā)布的對(duì)稱分組加密算法,用以替代 DES。它支持 128/192/256 位密鑰,對(duì)應(yīng) 10/12/14 輪加密,分組長(zhǎng)度固定為 128 位。算法通過密鑰擴(kuò)展生成多輪子密鑰,加密流程含字節(jié)替換、行移位、列混淆(末輪省略)和輪密鑰加等操作,利用 S 盒非線性變換與矩陣運(yùn)算實(shí)現(xiàn)混淆擴(kuò)散,抵御差分分析等攻擊。其優(yōu)勢(shì)在于對(duì)稱加密效率高、密鑰靈活性強(qiáng),且硬件友好(如 AES - NI 指令集加速),廣泛應(yīng)用于 HTTPS、硬盤加密等場(chǎng)景,是當(dāng)前主流安全加密標(biāo)準(zhǔn)。

AES 應(yīng)用場(chǎng)景


AES作為主流對(duì)稱加密算法,因高安全性與效率廣泛應(yīng)用于多場(chǎng)景。網(wǎng)絡(luò)通信中,HTTPS、VPN及加密通訊工具用其保障數(shù)據(jù)傳輸安全;數(shù)據(jù)存儲(chǔ)領(lǐng)域,硬盤加密、數(shù)據(jù)庫(kù)敏感字段保護(hù)及云文件加密均依賴AES;物聯(lián)網(wǎng)中,智能家居工業(yè)控制設(shè)備借其加密通信;移動(dòng)設(shè)備系統(tǒng)與SIM卡通信亦用AES保障安全。此外,金融支付、電子政務(wù)、硬件加速(如AES - NI)等場(chǎng)景也離不開AES,它是信息安全領(lǐng)域的核心技術(shù)。

API方法與使用


generateSymKey 生成對(duì)稱密鑰SymKey
let symKey1 = await AES.generateSymKey();
let symKeyStr1 = CryptoHelper.dataBlobToStr(symKey1.getEncoded(), 'hex');
LogUtil.error(`對(duì)稱密鑰1:${symKeyStr1}`);

let symKey2 = AES.generateSymKeySync();
let symKeyStr2 = CryptoHelper.dataBlobToStr(symKey2.getEncoded(), 'base64');
LogUtil.error(`對(duì)稱密鑰2:${symKeyStr2}`);
encryptGCM 加密(GCM模式)
let gcmParams = CryptoUtil.generateGcmParamsSpec();

let str1 = "鴻蒙技術(shù)交流QQ群:1029219059";
let smyKeyHexStr = "bf77a17b498a6e808048a734f2e992ab452c4c5f1c37f901a5a58f566b6b01d0"; //16進(jìn)制字符串密鑰
let symKey = await CryptoUtil.getConvertSymKey('AES256', smyKeyHexStr, 'hex');
let dataBlob = CryptoHelper.strToDataBlob(str1, 'utf-8'); //待加密數(shù)據(jù)

let encryptDataBlob1 = await AES.encryptGCM(dataBlob, symKey, gcmParams); //加密
let encryptStr1 = CryptoHelper.dataBlobToStr(encryptDataBlob1, 'utf-8');
LogUtil.error(`加密(GCM模式),異步:${encryptStr1}`);

let encryptDataBlob2 = AES.encryptGCMSync(dataBlob, symKey, gcmParams); //加密
let encryptStr2 = CryptoHelper.dataBlobToStr(encryptDataBlob2, 'utf-8');
LogUtil.error(`加密(GCM模式),同步:${encryptStr2}`);
decryptGCM 解密(GCM模式)
let gcmParams = CryptoUtil.generateGcmParamsSpec();

let str1 = "鴻蒙技術(shù)交流QQ群:1029219059";
let smyKeyHexStr = "bf77a17b498a6e808048a734f2e992ab452c4c5f1c37f901a5a58f566b6b01d0"; //16進(jìn)制字符串密鑰
let symKey = await CryptoUtil.getConvertSymKey('AES256', smyKeyHexStr, 'hex');
let dataBlob = CryptoHelper.strToDataBlob(str1, 'utf-8'); //待加密數(shù)據(jù)

let encryptDataBlob1 = await AES.encryptGCM(dataBlob, symKey, gcmParams); //加密
let decryptDataBlob1 = await AES.decryptGCM(encryptDataBlob1, symKey, gcmParams); //解密
let decryptStr1 = CryptoHelper.dataBlobToStr(decryptDataBlob1, 'utf-8');
LogUtil.error(`解密(GCM模式),異步:${decryptStr1}`);

let encryptDataBlob2 = AES.encryptGCMSync(dataBlob, symKey, gcmParams); //加密
let decryptDataBlob2 = AES.decryptGCMSync(encryptDataBlob2, symKey, gcmParams); //解密
let decryptStr2 = CryptoHelper.dataBlobToStr(decryptDataBlob2, 'utf-8');
LogUtil.error(`解密(GCM模式),同步:${decryptStr2}`);
encryptCBC 加密(CBC模式)
let ivParams = CryptoUtil.generateIvParamsSpec();

let str2 = "harmony-utils,一款高效的HarmonyOS工具包,封裝了常用工具類,提供一系列簡(jiǎn)單易用的方法。幫助開發(fā)者快速構(gòu)建鴻蒙應(yīng)用。";
let smyKeyBase64Str = "tlDExo6TzfIGyl36+BNEqR+Xxg83sAlvbzrvr3Seqlk="; //base64符串密鑰
let symKey = CryptoUtil.getConvertSymKeySync('AES256', smyKeyBase64Str, 'base64');
let dataBlob = CryptoHelper.strToDataBlob(str2, 'utf-8'); //待加密數(shù)據(jù)

let encryptDataBlob1 = await AES.encryptCBC(dataBlob, symKey, ivParams); //加密
let encryptStr1 = CryptoHelper.dataBlobToStr(encryptDataBlob1, 'utf-8');
LogUtil.error(`加密(CBC模式),異步:${encryptStr1}`);

let encryptDataBlob2 = AES.encryptCBCSync(dataBlob, symKey, ivParams); //加密
let encryptStr2 = CryptoHelper.dataBlobToStr(encryptDataBlob2, 'utf-8');
LogUtil.error(`加密(CBC模式),同步:${encryptStr2}`);
decryptCBC 解密(CBC模式)
let ivParams = CryptoUtil.generateIvParamsSpec();

let str2 = "harmony-utils,一款高效的HarmonyOS工具包,封裝了常用工具類,提供一系列簡(jiǎn)單易用的方法。幫助開發(fā)者快速構(gòu)建鴻蒙應(yīng)用。";
let smyKeyBase64Str = "tlDExo6TzfIGyl36+BNEqR+Xxg83sAlvbzrvr3Seqlk="; //base64符串密鑰
let symKey = CryptoUtil.getConvertSymKeySync('AES256', smyKeyBase64Str, 'base64');
let dataBlob = CryptoHelper.strToDataBlob(str2, 'utf-8'); //待加密數(shù)據(jù)

let encryptDataBlob1 = await AES.encryptCBC(dataBlob, symKey, ivParams); //加密
let decryptDataBlob1 = await AES.decryptCBC(encryptDataBlob1, symKey, ivParams); //解密
let decryptStr1 = CryptoHelper.dataBlobToStr(decryptDataBlob1, 'utf-8');
LogUtil.error(`解密(CBC模式),異步:${decryptStr1}`);

let encryptDataBlob2 = AES.encryptCBCSync(dataBlob, symKey, ivParams); //加密
let decryptDataBlob2 = AES.decryptCBCSync(encryptDataBlob2, symKey, ivParams); //解密
let decryptStr2 = CryptoHelper.dataBlobToStr(decryptDataBlob2, 'utf-8');
LogUtil.error(`解密(CBC模式),同步:${decryptStr2}`);
encryptECB 加密(ECB模式)
let str1 = "鴻蒙技術(shù)交流QQ群:1029219059";

let smyKeyBase64Str = "tlDExo6TzfIGyl36+BNEqR+Xxg83sAlvbzrvr3Seqlk="; //base64符串密鑰
let symKey = CryptoUtil.getConvertSymKeySync('AES256', smyKeyBase64Str, 'base64');
let dataBlob = CryptoHelper.strToDataBlob(str1, 'utf-8'); //待加密數(shù)據(jù)

let encryptDataBlob1 = await AES.encryptECB(dataBlob, symKey); //加密
let encryptStr1 = CryptoHelper.dataBlobToStr(encryptDataBlob1, 'utf-8');
LogUtil.error(`加密(ECB模式),異步:${encryptStr1}`);

let encryptDataBlob2 = AES.encryptECBSync(dataBlob, symKey); //加密
let encryptStr2 = CryptoHelper.dataBlobToStr(encryptDataBlob2, 'utf-8');
LogUtil.error(`加密(ECB模式),同步:${encryptStr2}`);
decryptECB 解密(ECB模式)
let str1 = "鴻蒙技術(shù)交流QQ群:1029219059";

let smyKeyBase64Str = "tlDExo6TzfIGyl36+BNEqR+Xxg83sAlvbzrvr3Seqlk="; //base64符串密鑰
let symKey = CryptoUtil.getConvertSymKeySync('AES256', smyKeyBase64Str, 'base64');
let dataBlob = CryptoHelper.strToDataBlob(str1, 'utf-8'); //待加密數(shù)據(jù)

let encryptDataBlob1 = await AES.encryptECB(dataBlob, symKey); //加密
let decryptDataBlob1 = await AES.decryptECB(encryptDataBlob1, symKey); //解密
let decryptStr1 = CryptoHelper.dataBlobToStr(decryptDataBlob1, 'utf-8');
LogUtil.error(`解密(ECB模式),異步:${decryptStr1}`);

let encryptDataBlob2 = AES.encryptECBSync(dataBlob, symKey); //加密
let decryptDataBlob2 = AES.decryptECBSync(encryptDataBlob2, symKey); //解密
let decryptStr2 = CryptoHelper.dataBlobToStr(decryptDataBlob2, 'utf-8');
LogUtil.error(`解密(ECB模式),同步:${decryptStr2}`);
encryptGCMSegment 加密(GCM模式)分段
let gcmParams = CryptoUtil.generateGcmParamsSpec();

let str3 = "harmony-utils,一款高效的HarmonyOS工具包,封裝了常用工具類,提供一系列簡(jiǎn)單易用的方法。幫助開發(fā)者快速構(gòu)建鴻蒙應(yīng)用。gitee地址:https://gitee.com/tongyuyan/harmony-utils。github主頁(yè)地址:https://github.com/787107497。";

let smyKeyHexStr = "bf77a17b498a6e808048a734f2e992ab452c4c5f1c37f901a5a58f566b6b01d0"; //16進(jìn)制字符串密鑰
let symKey = await CryptoUtil.getConvertSymKey('AES256', smyKeyHexStr, 'hex');
let dataBlob = CryptoHelper.strToDataBlob(str3, 'utf-8'); //待加密數(shù)據(jù)

let encryptDataBlob1 = await AES.encryptGCMSegment(dataBlob, symKey, gcmParams); //加密
let encryptStr1 = CryptoHelper.dataBlobToStr(encryptDataBlob1, 'utf-8');
LogUtil.error(`分段加密(GCM模式),異步:${encryptStr1}`);

let encryptDataBlob2 = AES.encryptGCMSegmentSync(dataBlob, symKey, gcmParams); //加密
let encryptStr2 = CryptoHelper.dataBlobToStr(encryptDataBlob2, 'utf-8');
LogUtil.error(`分段加密(GCM模式),同步:${encryptStr2}`);
decryptGCMSegment 解密(GCM模式)分段
let gcmParams = CryptoUtil.generateGcmParamsSpec();

let str3 = "harmony-utils,一款高效的HarmonyOS工具包,封裝了常用工具類,提供一系列簡(jiǎn)單易用的方法。幫助開發(fā)者快速構(gòu)建鴻蒙應(yīng)用。gitee地址:https://gitee.com/tongyuyan/harmony-utils。github主頁(yè)地址:https://github.com/787107497。";

let smyKeyHexStr = "bf77a17b498a6e808048a734f2e992ab452c4c5f1c37f901a5a58f566b6b01d0"; //16進(jìn)制字符串密鑰
let symKey = await CryptoUtil.getConvertSymKey('AES256', smyKeyHexStr, 'hex');
let dataBlob = CryptoHelper.strToDataBlob(str3, 'utf-8'); //待加密數(shù)據(jù)

let encryptDataBlob1 = await AES.encryptGCMSegment(dataBlob, symKey, gcmParams); //加密
let decryptDataBlob1 = await AES.decryptGCMSegment(encryptDataBlob1, symKey, gcmParams); //解密
let decryptStr1 = CryptoHelper.dataBlobToStr(decryptDataBlob1, 'utf-8');
LogUtil.error(`分段解密(GCM模式),異步:${decryptStr1}`);

let encryptDataBlob2 = AES.encryptGCMSegmentSync(dataBlob, symKey, gcmParams); //加密
let decryptDataBlob2 = AES.decryptGCMSegmentSync(encryptDataBlob2, symKey, gcmParams); //解密
let decryptStr2 = CryptoHelper.dataBlobToStr(decryptDataBlob2, 'utf-8');
LogUtil.error(`分段解密(GCM模式),同步:${decryptStr2}`);

創(chuàng)作不易,請(qǐng)給童長(zhǎng)老點(diǎn)贊

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • AES
    AES
    +關(guān)注

    關(guān)注

    0

    文章

    107

    瀏覽量

    33556
  • Harmony
    +關(guān)注

    關(guān)注

    0

    文章

    108

    瀏覽量

    3019
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    harmony-utilsCacheUtil,緩存工具類

    harmony-utilsCacheUtil,緩存工具類
    的頭像 發(fā)表于 07-04 16:36 ?122次閱讀

    harmony-utilsCharUtil,字符工具類

    harmony-utilsCharUtil,字符工具類
    的頭像 發(fā)表于 07-04 16:34 ?126次閱讀

    harmony-utilsDeviceUtil,設(shè)備相關(guān)工具類

    harmony-utilsDeviceUtil,設(shè)備相關(guān)工具類
    的頭像 發(fā)表于 07-03 18:27 ?162次閱讀

    harmony-utilsFileUtil,文件相關(guān)工具類

    harmony-utilsFileUtil,文件相關(guān)工具類
    的頭像 發(fā)表于 07-03 18:23 ?137次閱讀

    harmony-utilsImageUtil,圖片相關(guān)工具類

    harmony-utilsImageUtil,圖片相關(guān)工具類
    的頭像 發(fā)表于 07-03 18:22 ?172次閱讀

    harmony-utilsNumberUtil,Number工具類

    harmony-utilsNumberUtil,Number工具類 harmony-utils 簡(jiǎn)介與說明 harmony-utils 一款功能豐富且極易上手的HarmonyOS工具
    的頭像 發(fā)表于 07-03 18:08 ?141次閱讀

    harmony-utilsPreviewUtil,文件預(yù)覽工具類

    harmony-utilsPreviewUtil,文件預(yù)覽工具類 harmony-utils 簡(jiǎn)介與說明 [harmony-utils] 一款功能豐富且極易上手的HarmonyOS工
    的頭像 發(fā)表于 07-03 11:40 ?121次閱讀

    harmony-utilsStrUtil,字符串工具類

    harmony-utilsStrUtil,字符串工具類 harmony-utils 簡(jiǎn)介與說明 [harmony-utils] 一款功能豐富且極易上手的HarmonyOS工具庫(kù),借助
    的頭像 發(fā)表于 07-03 11:32 ?98次閱讀

    harmony-utilsTypeUtil,類型檢查工具類

    harmony-utilsTypeUtil,類型檢查工具類 harmony-utils 簡(jiǎn)介與說明 [harmony-utils] 一款功能豐富且極易上手的HarmonyOS工具庫(kù),
    的頭像 發(fā)表于 06-30 17:35 ?113次閱讀

    harmony-utilsDES,DES加解密

    harmony-utilsDES,DES加解密 harmony-utils 簡(jiǎn)介與說明 [harmony-utils]一款功能豐富且極易上
    的頭像 發(fā)表于 06-30 17:16 ?121次閱讀

    harmony-utilsRSA,RSA加解密

    harmony-utilsRSA,RSA加解密 harmony-utils 簡(jiǎn)介與說明 [harmony-utils] 一款功能豐富且極易
    的頭像 發(fā)表于 06-30 16:52 ?138次閱讀

    harmony-utilsSM2,SM2加解密

    harmony-utilsSM2,SM2加解密 harmony-utils 簡(jiǎn)介與說明 [harmony-utils] 一款功能豐富且極易
    的頭像 發(fā)表于 06-30 16:47 ?154次閱讀

    harmony-utilsSM4,SM4加解密

    harmony-utilsSM4,SM4加解密 harmony-utils 簡(jiǎn)介與說明 harmony-utils 一款功能豐富且極易上手
    的頭像 發(fā)表于 06-28 18:36 ?123次閱讀

    harmony-utilsAuthUtil,生物認(rèn)證相關(guān)工具類

    # harmony-utilsAuthUtil,生物認(rèn)證相關(guān)工具類 ## harmony-utils 簡(jiǎn)介與說明 ------[harmony-utils]( https
    的頭像 發(fā)表于 06-26 17:43 ?109次閱讀

    harmony-utilsArrayUtil,集合工具類

    # harmony-utilsArrayUtil,集合工具類 ## harmony-utils 簡(jiǎn)介與說明 ------[harmony-utils]( https
    的頭像 發(fā)表于 06-26 17:38 ?107次閱讀
    主站蜘蛛池模板: 男人的天堂免费网站 | 久久黄色毛片 | 三级黄色免费 | 日日夜夜噜 | 欧美黑人性色黄在线视频 | 男啪女色黄无遮挡免费视频 | 亚洲激情 | 国产精品麻豆va在线播放 | 亚洲国产精品久久久久婷婷老年 | 四虎亚洲国产成人久久精品 | 性夜影院爽黄e爽在线观看 羞羞色院91精品网站 | 高清视频在线播放 | 亚洲日本欧美日韩高观看 | 国产精品露脸脏话对白 | 天天综合天天综合 | 天天操天天透 | 在线视频精品免费 | 精品综合久久久久久98 | 亚洲一本视频 | 婷婷五月小说 | 美女视频黄a视频美女大全 美女视频一区二区 | 丁香花五月婷婷开心 | 欧美一二区视频 | 中文字幕一区二区三区四区 | 亚洲成人av | 欧美性猛片xxxxⅹ免费 | 婷婷第四色 | 免费在线视频播放 | 久久婷婷五综合一区二区 | 亚色网站| 免费四虎永久在线精品 | 狠狠色丁香久久综合婷婷 | 日本不卡在线观看免费v | 深爱婷婷网 | 亚洲一区二区中文字幕 | 日本色片在线观看 | japan高清视频乱xxxxx | 日本大片成人免费播放 | 韩国一区二区三区视频 | 亚洲综合一区二区三区 | 婷婷亚洲五月 |