【发布时间】:2011-07-13 02:18:47
【问题描述】:
如何从解密的字符串中删除填充?我正在使用 RijndaelManaged 提供程序来加密和解密。当我解密时,字符串末尾有几个/0/0/0/0/0/0。我的问题是如何优雅地(正确地)从结果字符串中删除字符?
【问题讨论】:
-
你是如何解密数据的? Rijndael 是否填充明文?
-
@Martinho Fernandes - Rijndael 以恒定大小(通常为 128、192 或 256 位)块加密数据。进出这些块大小需要更高级别的协议。
-
Rijndael 往返不会产生与输入不同的输出。 MSDN 有一个 sample 展示了如何使用 Rijndael 加密和解密数据,这些数据透明地使用您在 this answer 中设置的填充。
-
@Martinho Fernandes - 我指的是 NIST 指定的加密算法“Rijndael”。您指的是 .NET Framwork 类的“Rijndael”。在这种情况下,框架提供了我提到的“更高级别的协议”。
-
@Jeffrey:当然。但我也指的是算法。它要求输入是某个数字的倍数。你做填充。但是,无论您在加密时提供什么,在解密时都会得到什么,对吗?
标签: c# cryptography padding encryption rijndaelmanaged