2010-10-04 46 views
0

我爲此Convert.FromBase64String方法得到一個FormatException。我不介意硬編碼的價值。任何人都可以解釋爲什麼我得到這個例外Convert.FromBase64String FormatException

 // Instantiate a new RijndaelManaged object to perform string symmetric encryption 
     RijndaelManaged rijndaelCipher = new RijndaelManaged(); 

     // Set key and IV 
     rijndaelCipher.Key = Convert.FromBase64String("TASK"); 
     rijndaelCipher.IV = Convert.FromBase64String("0123"); 

謝謝。

+2

你知道Base64是什麼,以及Rijndael算法的密鑰和IV型是? – SLaks 2010-10-04 13:50:39

+0

不,我不需要一些快速的工作:) – 2010-10-04 14:03:41

+1

_不要使用密碼學,如果你不明白它。否則,您**將**創建安全漏洞。 – SLaks 2010-10-04 14:06:30

回答

3

您的字符串無效Base64。

您需要生成兩個密碼安全的256位隨機數,將它們轉換爲Base64,並將它們嵌入到源代碼中。

例如:

var alg = new RijndaelManaged(); 
alg.BlockSize = alg.KeySize = 256; 
Console.WriteLine("Key: " + Convert.ToBase64String(alg.Key)); 
Console.WriteLine("IV: " + Convert.ToBase64String(alg.IV)); 
+0

你能提供一個例子嗎? – 2010-10-04 14:04:00

+0

但是,這些不是隨機的,我需要加密密鑰才能解密它?你不要把密鑰設置在某個地方! – 2010-10-04 14:27:23

+0

您可以運行此代碼來生成隨機密鑰和IV,然後將結果嵌入到源代碼中。 – SLaks 2010-10-04 15:14:06

相關問題