纯文本的大小并不重要。只需确保在解密字符串FromBytes_AES(byte[] cipherText, byte[] Key, byte[] IV) 方法中使用完全相同的 IV 和密钥以及加密字节即可。这将返回给您输入的纯文本。
例如:
string plain_text = "Cool this works";
byte[] iv = new byte[] { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F};
byte[] key = new byte[] { 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77,
0x88, 0x99, 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF };
byte[] encrytped_text = encryptStringToBytes_AES(plain_text, key, iv);
string plain_text_again = decryptStringFromBytes_AES(encrypted_text, key, iv);
在这里您应该看到 plain-text 和 plain-text-again 是相同的。现在继续将 plain_text 更改为您想要的任何内容,看看效果是否正常。
RijndaelManaged 的默认值为:
块大小:128
密钥大小:256
模式:CipherMode.CBC
填充:PaddingMode.PKCS7
有效的 IV 大小为:
128、192、256 位(这是 BlockSize,请确保将其设置为您正在使用的大小 IV)
有效的密钥大小为:
128、192、256 位(这是 KeySize,请确保将其设置为您正在使用的密钥大小)
这意味着 byte[] iv 可以是 16、24 或 32 字节(在我上面的示例中为 16 字节),并且 byte[] key 也可以是 16、24 或 32 字节(在我上面的示例中为 16 字节) )。
希望有帮助。