8字节纯文本的DES加密产生16字节数组

时间:2009-08-11 20:04:10

标签: c# encryption des

我正在使用此代码加密8字节的PlainText,其中包含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;
}

ouptut的前8个字节是我所期望的,但其余的我不知道它是什么..这个代码有问题吗?

1 个答案:

答案 0 :(得分:8)

使用PKCS padding将输入填充到下一个块大小。 7字节输入将被填充到8. 8-15到16. 16-23到24,依此类推。