2011-09-16 46 views
-1

我正在尝试使用system.security.cryptography使用3DES解密,但在给加密哈希解密或加密纯文本时引发异常。3DES的密钥大小无效

错误:指定的密钥对此算法无效。

private byte[] KEY_192; 
    private byte[] IV_192; 

    public string DecryptTripleDES(string value) 
    { 

     if (value != "") 
     { 
      TripleDESCryptoServiceProvider cryptoProvider = new TripleDESCryptoServiceProvider(); 
      MemoryStream ms = new MemoryStream(Convert.FromBase64String(value)); 
      CryptoStream cs = new CryptoStream(ms, cryptoProvider.CreateDecryptor(this.KEY_192, this.IV_192), CryptoStreamMode.Read); 
      StreamReader sr = new StreamReader(cs); 
      return sr.ReadToEnd(); 
     } 
     return value; 
    } 
    private void button1_Click(object sender, EventArgs e) 
    { 
     textBox1.Text=textBox1.Text.Trim().Replace("'", ""); 


     string password = DecryptTripleDES(textBox1.Text); 
     textBox1.Text = password; 

    } 
+3

你没有显示你正在初始化KEY_192和IV_192的位置,如果它抱怨密钥大小是无效的,那么这是重要的一点...... –

回答

0

您需要将值分配给KEY_192和IV_192。