chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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之DES,DES加解密

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

掃碼添加小助手

加入工程師交流群

harmony-utils之DES,DES加解密

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

DES 算法簡(jiǎn)介


DES(數(shù)據(jù)加密標(biāo)準(zhǔn))作為 1977 年美國發(fā)布的首個(gè)標(biāo)準(zhǔn)化對(duì)稱分組加密算法,采用 64 位分組、56 位有效密鑰(含 8 位校驗(yàn)位)及 16 輪 Feistel 迭代結(jié)構(gòu),通過擴(kuò)展置換、S 盒非線性變換和 P 盒實(shí)現(xiàn)置換加密。其核心基于 Feistel 網(wǎng)絡(luò),將明文分為左右兩部分迭代處理,每輪通過子密鑰與輪函數(shù)運(yùn)算增強(qiáng)混淆擴(kuò)散。
但 DES 存在顯著安全缺陷:56 位密鑰空間僅 2??種組合,1999 年被證實(shí)可通過 2500 臺(tái)計(jì)算機(jī)在 22 小時(shí)內(nèi)暴力破解,且存在弱密鑰(如全 0 密鑰)使加密解密等價(jià),難以抵御差分 / 線性密碼分析。2001 年其被 AES 取代,過渡方案 3DES 通過三重加密將密鑰長(zhǎng)度提升至 112/168 位,曾用于金融 POS 機(jī)等場(chǎng)景。
DES 的歷史價(jià)值在于推動(dòng)加密技術(shù)標(biāo)準(zhǔn)化,奠定 Feistel 結(jié)構(gòu)理論基礎(chǔ),至今仍是密碼學(xué)教學(xué)的經(jīng)典案例。盡管在主流領(lǐng)域已淘汰,但其設(shè)計(jì)思想為現(xiàn)代對(duì)稱加密算法(如 AES)提供了重要參考。

API方法與使用


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

let symKey2 = DES.generateSymKeySync();
let symKeyStr2 = CryptoHelper.dataBlobToStr(symKey2.getEncoded(), 'base64');
LogUtil.error(`對(duì)稱密鑰2:${symKeyStr2}`);
encryptECB 加密(ECB模式)
let str1 = "鴻蒙技術(shù)交流QQ群:1029219059";

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

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

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

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

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

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

let str2 = "harmony-utils,一款高效的HarmonyOS工具包,封裝了常用工具類,提供一系列簡(jiǎn)單易用的方法。幫助開發(fā)者快速構(gòu)建鴻蒙應(yīng)用。";

let smyKeyBase64Str = "bZen8i4KBFVMlomHBNWeExvFydWEXspO"; //base64符串密鑰
let symKey = CryptoUtil.getConvertSymKeySync('3DES192', smyKeyBase64Str, 'base64');
let dataBlob = CryptoHelper.strToDataBlob(str2, 'utf-8'); //待加密數(shù)據(jù)

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

let encryptDataBlob2 = DES.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 = "bZen8i4KBFVMlomHBNWeExvFydWEXspO"; //base64符串密鑰
let symKey = CryptoUtil.getConvertSymKeySync('3DES192', smyKeyBase64Str, 'base64');
let dataBlob = CryptoHelper.strToDataBlob(str2, 'utf-8'); //待加密數(shù)據(jù)

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

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

let str1 = "鴻蒙技術(shù)交流QQ群:1029219059";

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

let encryptDataBlob1 = await DES.encrypt(dataBlob, symKey, ivParams, '3DES192|OFB|PKCS7'); //加密
let encryptStr1 = CryptoHelper.dataBlobToStr(encryptDataBlob1, 'utf-8');
LogUtil.error(`加密(OFB模式),異步:${encryptStr1}`);

let encryptDataBlob2 = DES.encryptSync(dataBlob, symKey, ivParams, '3DES192|OFB|PKCS7'); //加密
let encryptStr2 = CryptoHelper.dataBlobToStr(encryptDataBlob2, 'utf-8');
LogUtil.error(`加密(OFB模式),同步:${encryptStr2}`);
decrypt 解密
let ivParams = CryptoUtil.generateIvParamsSpec();

let str1 = "鴻蒙技術(shù)交流QQ群:1029219059";

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

let encryptDataBlob1 = await DES.encrypt(dataBlob, symKey, ivParams, '3DES192|OFB|PKCS7'); //加密
let decryptDataBlob1 = await DES.decrypt(encryptDataBlob1, symKey, ivParams, '3DES192|OFB|PKCS7'); //解密
let decryptStr1 = CryptoHelper.dataBlobToStr(decryptDataBlob1, 'utf-8');
LogUtil.error(`解密(OFB模式),異步:${decryptStr1}`);

let encryptDataBlob2 = DES.encryptSync(dataBlob, symKey, ivParams, '3DES192|OFB|PKCS7'); //加密
let decryptDataBlob2 = DES.decryptSync(encryptDataBlob2, symKey, ivParams, '3DES192|OFB|PKCS7'); //解密
let decryptStr2 = CryptoHelper.dataBlobToStr(decryptDataBlob2, 'utf-8');
LogUtil.error(`解密(OFB模式),同步:${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)投訴
  • DES
    DES
    +關(guān)注

    關(guān)注

    0

    文章

    65

    瀏覽量

    48734
  • Harmony
    +關(guān)注

    關(guān)注

    0

    文章

    108

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    harmony-utilsArrayUtil,集合工具類

    # harmony-utilsArrayUtil,集合工具類 ## harmony-utils 簡(jiǎn)介與說明 ------[harmony-utils]( https
    的頭像 發(fā)表于 06-26 17:38 ?108次閱讀

    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-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工具庫,借助
    的頭像 發(fā)表于 07-03 11:32 ?98次閱讀

    harmony-utilsTypeUtil,類型檢查工具類

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

    harmony-utilsAES,AES加解密

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

    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 ?126次閱讀