C# 数据与块大小匹配时RijndaelManaged填充

C# 数据与块大小匹配时RijndaelManaged填充,c#,.net,C#,.net,如果我在RijndaelManaged中使用PKCS7填充16字节的数据,那么我将得到32字节的数据输出。对于PKCS7,当数据大小与块大小匹配时,它会添加一个完整的额外数据块 如果我对16个字节的数据使用零填充,我将得到16个字节的数据。因此,对于零填充,如果数据与块大小匹配,则不填充 我已经搜索了文档,但它没有提到填充行为的这种差异 有人可以给我指一些文档,这些文档指定了当数据大小与块大小匹配时,不同填充模式的填充行为。我遇到了一篇文章,它提供了一个与我在搜索过程中找到的其他一些文章相一致的

如果我在RijndaelManaged中使用PKCS7填充16字节的数据,那么我将得到32字节的数据输出。对于PKCS7,当数据大小与块大小匹配时,它会添加一个完整的额外数据块

如果我对16个字节的数据使用零填充,我将得到16个字节的数据。因此,对于零填充,如果数据与块大小匹配,则不填充

我已经搜索了文档,但它没有提到填充行为的这种差异

有人可以给我指一些文档,这些文档指定了当数据大小与块大小匹配时,不同填充模式的填充行为。

我遇到了一篇文章,它提供了一个与我在搜索过程中找到的其他一些文章相一致的解释。基本原因如下:

您可能想知道如果我们的数据长度是完美的 块大小的倍数。在这个场景中,PaddingMode.None和 填充模式。零不添加填充。然而,在 PaddingMode.PKCS7,必须添加填充,因为密码必须为 能够扭转甚至没有填充的情况。在这种情况下 必须将附加块添加到纯文本和每个块的值中 字节设置为以字节为单位的块大小