C DES解密報錯 不正確的資料

2021-03-10 19:14:25 字數 1500 閱讀 8800

1樓:努力犀牛

本人也遇到此問

bai題,對比du之前寫的正確的**zhi發現解決辦法。dao分析:des加密

專只要向量、數屬據長度、秘鑰如果都是8位元組,那麼就不會存在什麼不正確的資料,因為對於加密演算法而已,加密的資料應該是任意的。

在c#中,des加密裡面有加密模式、填充方式等屬性,這兩個資料都有預設值,分別為模式:cbc;填充pkcs7。 而模式應該也是任意的不應該會出現錯誤,所以問題就在填充格式了。

我把之前的問題**裡面des加密的填充屬性改為不填充,問題完美解決。只要保證向量、秘鑰都是8位元組且資料長度為8的整數倍即可。

2樓:烏鴉丶

////// des資料加密

////// 目標值

/// 金鑰

/// 加密值

/////////public static string decrypt(string targetvalue, string key)

// 定義des加密物件

var des = new descryptoserviceprovider();

int len = targetvalue.length / 2;

var inputbytearray = new byte[len];

int x, i;

for (x = 0; x < len; x++)

// 通過兩次雜湊密碼設定對稱演算法的初始化向量

des.key = encoding.ascii.getbytes(formsauthentication.hashpasswordforstoringinconfigfile

(formsauthentication.hashpasswordforstoringinconfigfile(key, "md5").

substring(0, 8), "sha1").substring(0, 8));

// 通過兩次雜湊密碼設定演算法的機密金鑰

des.iv = encoding.ascii.getbytes(formsauthentication.hashpasswordforstoringinconfigfile

(formsauthentication.hashpasswordforstoringinconfigfile(key, "md5")

.substring(0, 8), "md5").substring(0, 8));

// 定義記憶體流

var ms = new memorystream();

// 定義加密流

var cs = new cryptostream(ms, des.createdecryptor(), cryptostreammode.write);

cs.write(inputbytearray, 0, inputbytearray.length);

cs.flushfinalblock();

return encoding.default.getstring(ms.toarray());}

多選下列說法中不正確的是,下列說法中不正確的有。

全部不正確。a,天平可以直接測量物體的重量 b,需要在彈力範圍內 c,槓桿在狀態不變時 d,傾斜角度越小越省力。bc b錯的原因 在彈性限度內。c錯的原因 前提是槓桿平衡時。d斜面傾斜角越小越省力 下列說法中不正確的有 同學你好,很高興為您解答 abcd企業核算成本時,設定的成本專案通常有直接入工 ...

2下列說法不正確的一項是下列說法不正確的一項是2分A《戰國策》是西漢末年劉向整理編輯的一部國別體史書,我們

下列句子中加點詞語運用不恰當的一項是。送東陽馬生序 是明初宋濂送給他的同鄉浙江東陽縣青年馬君則的文章。在這篇贈言裡,作者敘述個人早年虛心求教和勤苦學習的經歷,勉勵青年人珍惜良好的讀書環境,專心治學。文中生動而具體地描述了自己借書求師之難,飢寒奔走之苦,並與太學生優越的條件加以對比,有力地說明學業能否...

4下列說法不正確的是,4下列說法不正確的是

青藏地區主要包括 自治區 青海省和四川省的西部,面積約佔全國面積的25 人口僅佔全國總數的1 左右.青藏地區的主體是有 世界屋脊 之稱的青藏高原.故c錯誤.c。青藏地區的主體是青藏高原,主要包括青藏自治區,青海省和四川省西部的一部分。因為四川大部分以盆地為主,只有西部一部分屬於青藏高原。下列說法不正...