Tengo una cadena AES que se produce con esta clase, the AesCryptoServiceProvider Class proporcionado por Microsoft.
Y necesito decodificar este cifrado con Ruby SSL: : Clase de cifrado .
El problema es que si uno cifra uno con uno, no puede descifrarlo con el otro.
Un ejemplo de mi código VB.NET:
Private Const AesIV As String = "!QAZ2WSX#EDC4RFV"
Private Const AesKey As String = "5TGB&YHN7UJM(IK<"
aes.Mode = CipherMode.CBC
aes.Padding = PaddingMode.PKCS7
aes.BlockSize = 128
aes.KeySize = 128
Que produce esta cadena:
p6SI3+hMRFRsQG5Vk+R1YdXv9EaCsfAuB0ZSsqkBcy83ki20U0bV5TZrwxJ0C4dlpSEJDwc7b5znd/8UNXEhcXV0m8tAms3lp4ZS2aUaSfc=
Y luego mi código ruby hace esto:
cipher = OpenSSL::Cipher::AES128.new :CBC
# ^ That's 128 bit block in CBC mode, it defaults to 128 key size
cipher.iv = "!QAZ2WSX#EDC4RFV"
cipher.key = "5TGB&YHN7UJM(IK<"
solution = cipher.update("p6SI3+hMRFRsQG5Vk+R1YdXv9EaCsfAuB0ZSsqkBcy83ki20U0bV5TZrwxJ0C4dlpSEJDwc7b5znd/8UNXEhcXV0m8tAms3lp4ZS2aUaSfc=")
> "\xAC\xF3J{Cw\x95\xD8\x0F'\xC2\xB4,\xF2\x8E\xFE\xC9\x95\xD7\xE6JcB7\v\xBA\xD8kP'\a\x80\x81\x00\xC1\xCC\xE4\x95\x9E_5Ws\xF9j\xDF\xAC\xBA\"K\xF2\xB7,\x7F4\n\r\xB2\xF5\xC7R\xCFn\x97B\x05\\xE70\\x11x\xFA\v\xA2k\xBE(\x1E\xEB*O$\xDCc\xD7\xBEfs\x99\xADD\xC0\x1F\xBB9"
solution << cipher.final
> OpenSSL::Cipher::CipherError: wrong final block length