色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

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

基于M2加密算法深度解讀

tUM2_ADA ? 來源:djl ? 作者:ADAS ? 2019-08-09 17:23 ? 次閱讀

這個(gè)加密類很容易實(shí)現(xiàn)和使用。如果你需要加密字符串,如密碼、汽車牌號(hào)等,就可以使用這個(gè)個(gè)快捷、簡單、安全的方式。只要不暴露加密 KEY, 就會(huì)很安全。建議KEY 的長度最少為 12 個(gè)包含大小寫的字符。
使用代碼

首先下載源代碼,將其中的類插入你的命名空間。然后你可以初始化類的對(duì)象。
加密
以下代碼塊是如何使用 key 變量YourEncryptionKey 加密字符串變量 YourTextString 的簡單例子。

M2encryption.Key = YourEncryptionKey;M2encryption objEncrypt = new M2encryption();objEncrypt.ClearTekst = YourTextString; objEncrypt.Encrypt(); if (objEncrypt.errorState != -2) { MessageBox.Show(objEncrypt.EncryptedTekst);}

在做進(jìn)一步處理前檢查屬性 objEncrypt.errorState 有無錯(cuò)誤
errorState-1:
這意味著加密的文本包含 ASCII 以外的字符。在加密前,這些字符被更改為 "?"
errorState-2:
沒有提供加密 key。加密過程會(huì)中斷。
解密:

M2encryption.Key = YourEncryptionKey;M2encryption objEncrypt = new M2encryption();objEncrypt.EncryptedTekst = YourTextString; objEncrypt.Decrypt(); if (objEncrypt.errorState != -2) { MessageBox.Show(objEncrypt.ClearTekst);}

隨機(jī)化
將屬性 Randomization 設(shè)置為 true,運(yùn)行多次,同一個(gè)加密key 和平面文本會(huì)產(chǎn)生不同的加密文本

M2encryption.Randomization = true;

快捷模式
設(shè)置為Fastmode 模式會(huì)讓加密/解密快捷,但是安全性會(huì)降低。如果你要加密小字符串,不應(yīng)該啟用該模式。如果加密很大的文件,可以。
注意,解密和加密的模式應(yīng)該相同。

M2encryption.Fastmode = true;

算法的內(nèi)部工作原理
外部循環(huán)和內(nèi)部循環(huán)
算法包含外部和內(nèi)部循環(huán)。外部循環(huán)迭代次數(shù),內(nèi)部循環(huán)迭代平面文本中每個(gè)字符。
自變異內(nèi)部和外部 key
自變異內(nèi)部key
此 key 在內(nèi)部加密流程中使用。key 中每個(gè)字母都喲牛股加密平面文本中對(duì)應(yīng)的位置。當(dāng) key 的字符串結(jié)束后,該流程會(huì)使用自變異的key 版本繼續(xù)進(jìn)行,直至所有平面文本都加密完??磮D1 說明。子變異的內(nèi)部 key 標(biāo)記為藍(lán)色。

基于M2加密算法深度解讀

Fig1. 上述的key永遠(yuǎn)不會(huì)重復(fù)
自變異外部 key
用戶輸入key 后,自變異的外部key 會(huì)初始化。該key會(huì)用于外部循環(huán)并在每次開始自改變。該key的目的是為每輪生成唯一的映射矩陣并在這些輪中初始化自變異內(nèi)部key。映射數(shù)組在內(nèi)部循環(huán)中的加密流程中使用。
6 輪迭代的key 自變化的例子:

基于M2加密算法深度解讀

函數(shù) shuffleArr() 將自變異key作為輸入。根據(jù)key, 它會(huì)在 arrayint[] 中得出類似隨機(jī)順序的映射數(shù)字。函數(shù)每次調(diào)用,key 就會(huì)自變異,從而創(chuàng)建出新的唯一映射數(shù)組。
函數(shù) shuffleArr():

private void shuffleArr(int state){ int keyStep = 0; byte keyChar; bool emptyFound; int retning = 1; long refIndex = 1; double floatValue; int intPart; double fraPart; mutKey_o = selfMutateKey(mutKey_o, 3, state,1); for (int i = 0; i < 95; i++) map[i] = 0; //nulstil arr for (int i = 1; i < 96; i++) { if (retning == 1) retning = 0; else retning = 1; //h?ndter key if (keyStep > mutKey_o.Length - 1) keyStep = 0; keyChar = (byte)mutKey_o[keyStep]; refIndex = i + (int)keyChar; if (refIndex > 95) { if (refIndex - 95 <= 95) refIndex = refIndex - 95; else { floatValue = refIndex / 95.0; intPart = (int)floatValue; fraPart = floatValue - intPart; if (fraPart == 0.0) fraPart = 1.0; refIndex = Convert.ToInt32(95 * fraPart); } } refIndex--; //pga arr 0- 94 if (map[refIndex] == 0) map[refIndex] = i; else { emptyFound = false; do { if (retning == 1) { refIndex++; if (refIndex > 94) refIndex = 0; if (map[refIndex] == 0) { map[refIndex] = i; emptyFound = true; } } else { refIndex--; if (refIndex < 0) refIndex = 94; if (map[refIndex] == 0) { map[refIndex] = i; emptyFound = true; } } } while (emptyFound == false); } keyStep++; } for (int i = 0; i < 95; i++) { for (int k = 0; k < 95; k++) { if (map[k] == i + 1) { mapRev[i] = (k + 1); break; } } } }

內(nèi)循環(huán)加密流程
Step 1:
整個(gè)文本都需要經(jīng)過函數(shù) chainChangeChars() 處理
文本會(huì)被從頭到尾來回掃描,文本中每個(gè)字母都根據(jù)左邊的相鄰字符(在回來的時(shí)候根據(jù)右邊的相鄰字母)更改。如果一個(gè)字母更改,每個(gè)單獨(dú)的字母也會(huì)隨之更改。每個(gè)更改的字符會(huì)跟映射 arrayint[] 圖重新映射。
這是我解決問題的公式:
示例文本 "ABCD"
A 是 B 的左邊相鄰字母

基于M2加密算法深度解讀


在相反的流程中

基于M2加密算法深度解讀

然后重新映射:
Y = map[X]
最后:
B 被替換為 Y
文本成為 "AYCD" (其中 Y 是個(gè)持有真正字母的變量)
原先的 B現(xiàn)在存儲(chǔ)在 Y 內(nèi)??梢酝ㄟ^ Y 和 A 還原
Step 2:
這個(gè)步驟是個(gè)流程的開始,會(huì)根據(jù)自變異的內(nèi)部key 更改文本中每個(gè)字母,如圖一所示。
首先生成一個(gè)種子。對(duì)于每個(gè)要更改的字母,下個(gè)文本的十進(jìn)位 ascii 值會(huì)在 variabelseedC 中累計(jì)??吹谝恍写a:

seedC = seedC + (byte)Convert.ToChar(key[keyIndexC]);keyIndexC++; if (keyIndexC > lenKey - 1){ keyIndexC = 0; mutKey_i = selfMutateKey(key,2,1,2);}

Step 3:
生成引用索引號(hào).
步驟 2 中的種子現(xiàn)在用作函數(shù) createRefIndex() 的輸入
在這個(gè)函數(shù)中,種子經(jīng)過這個(gè)公式:
種子除以 95
將小數(shù)的整數(shù)部分更改為 0
結(jié)果乘以 95
代碼如下:

refIndex = seed; if (refIndex > 95){ if (refIndex - 95 <= 95) refIndex = refIndex - 95; else { floatValue = refIndex / 95.0; intPart = (int)floatValue; fraPart = floatValue - intPart; if (fraPart == 0.0) fraPart = 1.0; refIndex = Convert.ToInt32(95 * fraPart); }}

得到的 refIndex 將總是一個(gè) [1 - 95] 的整數(shù)。
Step 4:
在最后一個(gè)步驟中,字符更改為加密文本中的最終字符
字符的索引添加到 therefIndex-1
最后的結(jié)果通過 arrayint[] 圖重新映射

tegnChanged = tegn + (refIndex - 1); if (tegnChanged > 95) tegnChanged = tegnChanged - 95;tegnChanged = map[tegnChanged - 1];

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

    關(guān)注

    0

    文章

    93

    瀏覽量

    19160
  • 加密算法
    +關(guān)注

    關(guān)注

    0

    文章

    216

    瀏覽量

    25553
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    關(guān)于幾種常用加密算法比較

    AES加密算法是密碼學(xué)中的高級(jí)加密標(biāo)準(zhǔn),該加密算法采用對(duì)稱分組密碼體制,密鑰長度的最少支持為128、192、256,分組長度128位,算法應(yīng)易于各種硬件和軟件實(shí)現(xiàn)。這種
    的頭像 發(fā)表于 03-19 09:21 ?5903次閱讀
    關(guān)于幾種常用<b class='flag-5'>加密算法</b>比較

    汽車遙控加密算法

    本人在公司主要做國內(nèi)整車廠的遙控器,主要是用keeloq,Hitag2 ,Hitag3 ,AES加密算法,想請(qǐng)教下論壇里的大牛,像奧迪,奔馳,寶馬等豪車的遙控器用什么加密算法?
    發(fā)表于 02-17 21:04

    如何去實(shí)現(xiàn)DES加密算法?

    DES算法的簡單原理是什么?如何去實(shí)現(xiàn)DES加密算法?
    發(fā)表于 04-26 07:14

    uid加密算法

    uid加密算法,1.STM32可以加密程序,不然可能有被竊取的可能JTAG 可以直接通過J-LINK-FLASH獲取代碼,首先新建工程,型號(hào)選好,read back即可save data fileUID加密函數(shù),在我的鏈接里,一
    發(fā)表于 07-19 08:23

    DES加密算法是什么

    ,是要被加密或解密的數(shù)據(jù),DES采用16輪運(yùn)算,每輪產(chǎn)生一個(gè)輪密鑰參與到運(yùn)算中,密鑰與明文運(yùn)算時(shí)采用按位異或的方法(不僅僅是與密鑰異或),但每一位存放的數(shù)據(jù)只有0或1,因此,DES的密鑰空間僅僅只有2^56。2、3DES
    發(fā)表于 07-22 09:13

    對(duì)稱加密算法是什么

    對(duì)稱加密算法也叫私鑰加密算法,其特征是收信方和發(fā)信方使用相同的密鑰,即加密密鑰和解密密鑰是相同或等價(jià)的。非對(duì)稱加密算法也叫公鑰加密算法。其特
    發(fā)表于 07-22 07:09

    軟件加密算法都有哪些,這些算法在哪些方面得到了應(yīng)用

    伴隨著人工智能、物聯(lián)網(wǎng)時(shí)代的到來,數(shù)據(jù)應(yīng)用變得頻繁起來,數(shù)據(jù)安全應(yīng)該如何保護(hù)?軟件加密算法都有哪些,這些算法在哪些方面得到了應(yīng)用?慢慢讀下去,你會(huì)發(fā)現(xiàn)圍繞在我們身邊的“小密碼”。對(duì)稱加密算法對(duì)稱
    發(fā)表于 12-21 07:04

    淺談對(duì)稱加密算法與非對(duì)稱密鑰加密算法

    什么是對(duì)稱密鑰密碼體制?對(duì)稱密鑰密碼體制的缺點(diǎn)是什么?非對(duì)稱加密算法又是什么?非對(duì)稱加密算法的缺點(diǎn)是什么?
    發(fā)表于 12-23 06:05

    labview md5加密算法.llb

    md5加密算法 md5加密算法 md5加密算法 md5加密算法
    發(fā)表于 05-25 14:25 ?111次下載

    解讀保護(hù)數(shù)據(jù)安全的八種軟件加密算法

    對(duì)稱加密算法是應(yīng)用較早的加密算法,技術(shù)成熟。在對(duì)稱加密算法中,數(shù)據(jù)發(fā)信方將明文(原始數(shù)據(jù))和加密密鑰一起經(jīng)過特殊加密算法處理后,使其變成復(fù)雜
    的頭像 發(fā)表于 11-28 10:18 ?9646次閱讀
    <b class='flag-5'>解讀</b>保護(hù)數(shù)據(jù)安全的八種軟件<b class='flag-5'>加密算法</b>

    常見公鑰加密算法有哪些

    RSA、ElGamal、背包算法、Rabin(Rabin的加密法可以說是RSA方法的特例)、Diffie-Hellman (D-H) 密鑰交換協(xié)議中的公鑰加密算法、Elliptic Curve
    發(fā)表于 12-10 09:41 ?4.4w次閱讀

    舉例幾種常見的加密算法

    今天主要總結(jié)下常用的對(duì)稱性加密算法DES和AES,非對(duì)稱性加密算法RSA。 01 ?DES加密算法 1.DES含義 DES全稱為Data Encrypt
    的頭像 發(fā)表于 04-28 13:52 ?2w次閱讀
    舉例幾種常見的<b class='flag-5'>加密算法</b>

    詳細(xì)解讀Go加密解密算法

    本文介紹了常用的加密算法,并對(duì)這些加密算法結(jié)合實(shí)際 golang 代碼段進(jìn)行了詳細(xì)解讀。 前言 加密解密在實(shí)際開發(fā)中應(yīng)用比較廣泛,常用加解密分為:“對(duì)稱式”、“非對(duì)稱式”和”數(shù)字簽名“
    的頭像 發(fā)表于 07-29 17:37 ?2494次閱讀

    Go常用的加密算法詳細(xì)解讀

    【導(dǎo)讀】本文介紹了常用的加密算法,并對(duì)這些加密算法結(jié)合實(shí)際 golang 代碼段進(jìn)行了詳細(xì)解讀。 前言 加密解密在實(shí)際開發(fā)中應(yīng)用比較廣泛,常用加解密分為:“對(duì)稱式”、“非對(duì)稱式”和”數(shù)
    的頭像 發(fā)表于 09-01 14:47 ?2991次閱讀

    加密算法的選擇對(duì)于加密安全有多重要?

    加密算法的選擇對(duì)于加密安全至關(guān)重要,因?yàn)樗苯佑绊懙綌?shù)據(jù)保護(hù)的有效性和可靠性。以下是幾個(gè)關(guān)鍵點(diǎn)來說明加密算法選擇的重要性: 加密強(qiáng)度: 加密算法
    的頭像 發(fā)表于 12-17 15:59 ?108次閱讀
    主站蜘蛛池模板: 久久综合狠狠综合狠狠| 欧美日韩一区在线观看| 欧美人与动牲交A免费| 妇少水多18P蜜泬17P亚洲乱| 亚洲香蕉视频在线播放| 精品手机在线视频| 中国女人精69xxxxxx视频| 色丁香婷婷综合缴情综| 老头狠狠挺进小莹体内视频| 99久久精品费精品蜜臀AV| 女教师公车痴汉在线播放| 把内衣脱了把奶露出来| 夜夜女人国产香蕉久久精品| 色淫阁色九九| 久久精品AV无码亚洲色欲| 俄罗斯摘花| 99麻豆精品国产人妻无码| 有码在线播放| 亚洲精品在线免费| 色偷偷影院| 任你躁国语自产二区在线播放| 久久九九日本韩国精品| 成人毛片免费观看视频大全| 4399的视频BD高清在线观看免费| 亚洲spank男男实践网站| 少妇连续高潮抽搐痉挛昏厥| 欧美性受xxxx狂喷水| 国产一级特黄aa毛片| 高中生被C到爽哭视频免费| 亚洲精品97福利在线| 视频一区国产在线第一页| 久久嫩草影院网站| 好男人在线高清WWW免费观看| 1313久久国产午夜精品理论片| 亚洲精品国产自在在线观看| 无码11久岁箩筣| 柠檬福利精品视频导航| 久久亚洲国产精品亚洲| 久久www成人看片| 和姐姐做插得很深| 国产在线中文字幕|