des加密解密原始碼 C key值問題分析

2021-07-26 07:14:51 字數 1805 閱讀 6995

公司協議安全需求、需要對傳輸內容做des、md5加密。

因為是新人、剛交給我這個任務的時候有點眩暈。就開始在網上找各種des加密的內容。因為不懂以為需要把原理也搞明白,最後誤了時間、把自己也搞糊塗了。當然,邏輯能力強、有興趣的朋友可以試著去搞搞。

先貼加密、解密的原始碼:

////// 加密資料

///

///

///

///

public

static

string

encrypt(string text, string skey)

return ret.tostring();

}#endregion

////// 解密資料

///

///

///

///

public

static

string

decrypt(string text, string skey)

des.key = asciiencoding.ascii.getbytes(system.web.security.formsauthentication.hashpasswordforstoringinconfigfile(skey, "md5").substring(0, 8));

des.iv = asciiencoding.ascii.getbytes(system.web.security.formsauthentication.hashpasswordforstoringinconfigfile(skey, "md5").substring(0, 8));

system.io.memorystream ms = new system.io.memorystream();

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

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

cs.flushfinalblock();

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

#endregion

因為是第一次接觸des並且公司協議文件的需求、讓我對這段**裡面迷糊的有:

1:倆個引數

text 是要加密的內容

skey是作為加密內容的金鑰。當然加密、解密時候的skey值,是要保持一致的。

2:des物件的key值

這個key值和iv值是固定的8位長度,一定要牢記。因為咱們的引數skey是不定長度的、所以採取了乙個方式就是對其進行md5加密、然後再擷取他的前8位。這是為了在解密的時候保證key一致。不然會解密出錯。

最後,我說一下做為新人,我感覺牢記的幾個地方,或許是大大們眼中寫des必需的幾點~~別噴我啊、

幾個必要的物件:

descryptoserviceprovider 沒有它你想怎麼des呢、嘿嘿

memorystream 儲存在記憶體的流物件

cryptostream 定義將資料流鏈結到加密轉換流。通過它寫入memorystream物件當中

最後轉換成string。

des加密解密原始碼 C key值問題

公司協議安全需求 需要對傳輸內容做des md5加密。因為是新人 剛交給我這個任務的時候有點眩暈。就開始在網上找各種des加密的內容。因為不懂以為需要把原理也搞明白,最後誤了時間 把自己也搞糊塗了。當然,邏輯能力強 有興趣的朋友可以試著去搞搞。網上很多加密方式,做為開發人員,只要懂得怎麼運用就行。第...

DES加密解密

using system using system.drawing using system.collections using system.componentmodel using system.windows.forms using system.data using system.io us...

DES加密解密

加密類 date 2012 04 23 pm.public class encrypt private encrypt 建立加密類物件.public static encrypt createcryptoserviceprovider des加密.待加密字串.加密金鑰.8位 public strin...