在为填充为PKCS#7进行加密之前,我很难弄清楚应该用什么字符串填充。据我所知,每个填充块的值应等于填充块的数量。
但是,当我尝试在C#中执行此操作时,此公式将不起作用。在下面的示例中,数据byte []有10个元素,需要6个填充,但是除非您使用7作为每个填充块的值,否则不会正确剥离填充。
但是,如果我将数据中的内容扩展到14个字节(因此需要填充两个字节),则每个块都需要将值设置为0才能正确删除填充。
这样,有人可以告诉我我是否正确实现了这些功能,或者我是否误解了应如何实现填充功能。
我包括以下功能:
/// <summary>
/// Invoked when application execution is being suspended. Application state is saved
/// without knowing whether the application will be terminated or resumed with the contents
/// of memory still intact.
/// </summary>
/// <param name="sender">The source of the suspend request.</param>
/// <param name="e">Details about the suspend request.</param>
private async void OnSuspending(object sender, SuspendingEventArgs e)
{
var deferral = e.SuspendingOperation.GetDeferral();
//TODO: Save application state and stop any background activity
deferral.Complete();
}