2014-10-07 73 views
0

在我的C#程序中,我正在加密/解密文件。我從微軟網站上覆制了這段代碼來玩弄它並對其進行分析。我在問你們中的任何一個人是否知道如何將預先確定的字符串作爲加密/解密的關鍵字。C#擁有用戶輸入字符串的密鑰DES

在我的主要方法:

string sSecretKey; 
sSecretKey = GenerateKey(); 

GenerateKey:

static string GenerateKey() 
{ 
    DESCryptoServiceProvider desCrypto = 
       (DESCryptoServiceProvider) DESCryptoServiceProvider.Create(); 
    return ASCIIEncoding.ASCII.GetString(desCrypto.Key); 
} 

這是我的加密和解密功能:我不知道他們做了什麼

DES.Key = ASCIIEncoding.ASCII.GetBytes(sKey); 
DES.IV = ASCIIEncoding.ASCII.GetBytes(sKey); 

回答

0

這類取決於你想要做什麼。在以下行中...

ASCIIEncoding.ASCII.GetString(desCrypto.Key); 

您正在爲加密對象獲取自動生成的密鑰的ascii表示形式。該物業DES.Key雖然,既有公共set和公共get,所以你可以做:

// Set key to a pre-determined set of bytes (of length 8): 
desCrypto.Key = new byte[] {0x4b, 0x4a, 0x41, 0x52, 0x54, 0x41, 0x4e, 0x21}; 

Ofcourse的這個值,當下一行解碼desCrypto.Key成一個字符串,該字節將被「解碼」從十六進制到more readable ascii characters(假設你已經提供了一些有意義的十六進制值,開頭,ofcourse)。