C# Windows.Security.Cryptography.Core中所有对称算法名称的确切含义是什么?

C# Windows.Security.Cryptography.Core中所有对称算法名称的确切含义是什么?,c#,encryption,aes,C#,Encryption,Aes,我正在创建一个需要使用Windows Universal SDK加密某些数据的应用程序 我有代码,看起来都很不错,我使用的是AESCBCCPKCS7算法。我对代码没有任何问题,但我不明白的是,“Aes”后面的“CbcPkcs7”到底是什么意思。我指的是Windows.Security.Cryptography.Core.SymmetricAlgorithmNames 像那些 AesCbc AesCcm AESEB AesEcbPkcs7 AesGcm是一种分组密码,因此只能加密固定大小(16字节

我正在创建一个需要使用Windows Universal SDK加密某些数据的应用程序

我有代码,看起来都很不错,我使用的是AESCBCCPKCS7算法。我对代码没有任何问题,但我不明白的是,“Aes”后面的“CbcPkcs7”到底是什么意思。我指的是
Windows.Security.Cryptography.Core.SymmetricAlgorithmNames

像那些

AesCbc
AesCcm
AESEB
AesEcbPkcs7

AesGcm是一种分组密码,因此只能加密固定大小(16字节)的块

加密多个块时需要使用。例如,ECB对每个明文块分别应用分组密码,以获得密文块。ECB有问题,因为它在语义上不安全,所以带有随机初始化向量的CBC模式最好在大部分时间使用。更好的是像GCM这样的认证模式,它不仅提供机密性,还提供完整性/真实性

这仍然不够,因为像CBC这样的模式只允许加密块大小的倍数的明文。为了加密任意长度的明文,需要使用填充方案将明文填充到块大小的下一个倍数。PKCS#7填充的工作原理是在字节后追加每个字节的值,这些值表示追加的字节数


像CTR和GCM这样的模式是流模式,因此不需要额外的填充模式来加密任意长度的明文。

在尝试使用之前,您确实需要研究加密技术。这些是使用Aes的不同方式,将极大地改变应用程序的安全性。现在,更有趣的问题是“AESEECB”和“AesEcbPkcs7”是否相同。只是猜测,但我怀疑AESEECB是PaddingMode。无。正如ECB是构建所有其他加密模式的基本加密模式一样,.None将是构建所有其他填充模式的填充模式(因为没有填充,该模式只需添加其协议调用的任何内容)。