Hola :D,estoy intentando cifrar la conexion entre mi client y servidor,pero al enviar o recibir paquetes me da este error:
El relleno entre caracteres no es válido y no se puede quitar.
doAction(AES_Decrypt(buffer, Encoding.Default.GetBytes(this.keyG)).ToString());
public byte[] AES_Decrypt(byte[] bytesToBeDecrypted, byte[] passwordBytes)
{
byte[] decryptedBytes = null;
byte[] saltBytes
= new byte[] { 1,
2,
3,
4,
5,
6,
7,
8 }; using (MemoryStream ms
= new MemoryStream
()) {
using (RijndaelManaged AES
= new RijndaelManaged
()) {
AES.KeySize = 256;
AES.BlockSize = 128;
var key
= new Rfc2898DeriveBytes
(passwordBytes, saltBytes,
1000); AES.Key = key.GetBytes(AES.KeySize / 8);
AES.IV = key.GetBytes(AES.BlockSize / 8);
AES.Mode = CipherMode.CBC;
using (var cs
= new CryptoStream
(ms, AES
.CreateDecryptor(), CryptoStreamMode
.Write)) {
cs.Write(bytesToBeDecrypted, 0, bytesToBeDecrypted.Length);
cs.Close(); // Aquí me salta la exepcion
}
decryptedBytes = ms.ToArray();
}
}
return decryptedBytes;
}
La clave que estoy usando es: YmyWRtxxc5¿Jun/y%2WH%jyM1f , puede que sea por que tiene caracteres raros?