4

このコードを使用して、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バイトは私が期待するものですが、残りはそれが何であるかはわかりません。このコードに何か問題がありますか?

4

1 に答える 1

9

入力は、PKCS paddingを使用して次のブロック サイズにパディングされます。7 バイトの入力は 8 にパディングされます。8-15 から 16、16-23 から 24 など。

于 2009-08-11T20:08:52.647 に答える