4

我正在使用此代码使用 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 个字节是我所期望的,但其余的我不知道它是什么......这段代码有问题吗?

4

1 回答 1

9

输入将使用PKCS padding填充到下一个块大小。7 个字节输入将被填充到 8。8-15 到 16。16-23 到 24 等等。

于 2009-08-11T20:08:52.647 回答