DES-шифрование 8-байтового простого текста приводит к 16-байтовому массиву - PullRequest
4 голосов
/ 12 августа 2009

Я использую этот код для шифрования 8-байтового простого текста с 8-байтовым ключом, но в результате всегда получается 16-байтовый массив.

public static byte[] Encrypt(byte[] PlainText, byte[] key)
{
    MemoryStream ms = new MemoryStream();
    DESCryptoServiceProvider mDES = new DESCryptoServiceProvider();
    mDES.Mode = CipherMode.ECB;
    mDES.Key = key;

    CryptoStream encStream = new CryptoStream(ms, mDES.CreateEncryptor(), CryptoStreamMode.Write);
    BinaryWriter bw = new BinaryWriter(encStream);

    bw.Write(PlainText);
    bw.Close();
    encStream.Close();

    byte[] buffer = ms.ToArray();
    ms.Close();

    return buffer;
}

Первые 8 байтов выходного сигнала - это то, что я ожидаю, а остальное я не понимаю, что это ... что-то не так с этим кодом?

1 Ответ

8 голосов
/ 12 августа 2009

Вход будет дополнен до размера блока next с использованием PKCS padding . 7 байтов ввода будут дополнены до 8. 8-15 до 16. 16-23 до 24 и т. Д. И т. Д.

...