Шифрование AES 256 - PullRequest
       14

Шифрование AES 256

2 голосов
/ 29 июня 2009

Я использую 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);
}

1 Ответ

4 голосов
/ 29 июня 2009

PKCS # 5-padding и PKCS # 7-padding - это разные имена для одного и того же алгоритма. Его также иногда называют PKCS-заполнением или RFC3852-заполнением.

...