2

我正在使用 AES 256 加密/解密一些纯文本。但是该算法只使用PKCS7进行填充,但我需要使用PKCS5才能使其与其他平台兼容。我怎样才能做到这一点?

我的源代码是:

public string Encrypt(byte[] PlainTextBytes, byte[] KeyBytes, string InitialVector)
{
    byte[] InitialVectorBytes = Encoding.UTF8.GetBytes(InitialVector);
    RijndaelManaged SymmetricKey = new RijndaelManaged();
    SymmetricKey.Mode = CipherMode.CBC;
    SymmetricKey.Padding = PaddingMode.PKCS7;
    ICryptoTransform Encryptor = SymmetricKey.CreateEncryptor(KeyBytes, InitialVectorBytes);
    MemoryStream MemStream = new MemoryStream();
    CryptoStream CryptoStream = new CryptoStream(MemStream, Encryptor, CryptoStreamMode.Write);
    CryptoStream.Write(PlainTextBytes, 0, PlainTextBytes.Length);
    CryptoStream.FlushFinalBlock();
    byte[] CipherTextBytes = MemStream.ToArray();
    MemStream.Close();
    CryptoStream.Close();
    return ByteToHexConversion(CipherTextBytes);
}
4

1 回答 1

4

PKCS#5-padding 和 PKCS#7-padding 是同一算法的不同名称。它有时也称为 PKCS-padding 或 RFC3852-padding。

于 2009-06-29T10:58:53.397 回答