第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

C#加密庫如何處理小于加密算法所需的密鑰大小的密鑰?

C#加密庫如何處理小于加密算法所需的密鑰大小的密鑰?

C#
開滿天機(jī) 2021-03-31 11:10:40
讓我們以需要192位密鑰的TripesDES算法為例。C#如何處理較小的密鑰?假設(shè)128位密鑰(請(qǐng)參見下面的示例)在nodejs中,嘗試使用較小的密鑰將引發(fā)“無效密鑰大小”錯(cuò)誤。C#繼續(xù)并輸出加密。我想內(nèi)部使用某種填充?如果是這種情況,哪種填充?我認(rèn)為PKCS7僅用于填充每個(gè)加密塊,對(duì)嗎?它與加密密鑰本身無關(guān)。    var cryptoProvider = new TripleDESCryptoServiceProvider    {        Key = new byte[]        {            0xAA,            0xAA,            0xAA,            0xAA,            0xAA,            0xAA,            0xAA,            0xAA,            0xAA,            0xAA,            0xAA,            0xAA,            0xAA,            0xAA,            0xAA,            0xAA        },        Mode = CipherMode.ECB,        Padding = PaddingMode.PKCS7    };    var encryptor = cryptoProvider.CreateEncryptor();    var token = encryptor.TransformFinalBlock(bytes, 0, bytes.Length);
查看完整描述

2 回答

?
千萬里不及你

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超9個(gè)贊

讓我們以需要192位密鑰的TripesDES算法為例


那是不完全正確的。TripleDES基本上通過3個(gè)鍵將DES應(yīng)用于3次。這三個(gè)鍵可以是:


都一樣。那是常規(guī)的DES。我們可以忽略該選項(xiàng)

都不同。這就是您所期望的192位密鑰(共3個(gè)密鑰)

2個(gè)鍵相同,第3個(gè)不同。比所有密鑰都不同時(shí)要弱,但仍比常規(guī)DES要強(qiáng)。這給了我們128位密鑰(兩個(gè)密鑰合在一起)。

.NET實(shí)現(xiàn)支持最后2個(gè)選項(xiàng),因此,當(dāng)您使用128位密鑰(就像您在問題中所做的那樣)時(shí)-它會(huì)將其拆分為2個(gè)密鑰,并使用其中一個(gè)(第一個(gè))作為第3個(gè)密鑰,因此結(jié)果是您將擁有1個(gè)和第三鍵相同。


請(qǐng)注意,.NET將驗(yàn)證您的密鑰不是“弱”三元DES密鑰,因此對(duì)于您所舉的示例,它將拋出異常,因?yàn)槊荑€的左半部分和右半部分相同,如上所述。導(dǎo)致使用3個(gè)相同的密鑰進(jìn)行加密,因此整個(gè)過程將簡化為常規(guī)DES。


通常,.NET會(huì)驗(yàn)證您傳遞的密鑰是否具有給定算法的合法大小。


您可以通過首先使用一些16字節(jié)密鑰進(jìn)行加密來驗(yàn)證上述內(nèi)容:


var key = new byte[] {

    0xAA,

    0xAA,

    0xAA,

    0xAA,

    0xAA,

    0xAA,

    0xAA,

    0xAA,

    0xAA,

    0xAA,

    0x00,

    0x00,

    0x00,

    0x00,

    0x00,

    0x00

};

然后手動(dòng)將前8個(gè)字節(jié)附加到末尾以獲取24個(gè)字節(jié)的密鑰:


var fullKey = key.Concat(key.Take(8)).ToArray()

并使用它解密(因?yàn)樯厦娴?6字節(jié)和24字節(jié)密鑰相同,所以解密就很好了)。


查看完整回答
反對(duì) 回復(fù) 2021-04-10
  • 2 回答
  • 0 關(guān)注
  • 137 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)