如何使用Rijndael加密与.Net Core类库

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用Rijndael加密与.Net Core类库相关的知识,希望对你有一定的参考价值。

参考技术A )之间Rijndael和AES是Rijndael允许块大小改变,但AES不。由于RijndaelManaged的默认块大小与AES块大小(128位/ 16字节)相同,因此实际上使用AES。

而不是实例化实现类型按名称,只需使用工厂( Aes.Create())。在.NET Core和.NET Framework中都有效。

其他值得一提的方法:

所有SymmetricAlgorithm实例都是IDisposable,您应该使用使用语句。

所有ICryptoTransform实例未正确命名为 desEncryptor )为IDisposable,则应在中使用语句。

ISO10126填充在.NET Core 1.0中不可用。如果你需要兼容现有的流,你可以自己应用填充和指定PaddingMode.None。否则,PKCS7更标准。

您的AES密钥不是很随机,因为它来自一个ASCII字符串(许多值将无效)。

Base64至少具有完整的值范围

通过Rfc2898DeriveBytes类,PBKDF2(基于密码的密钥导出函数2)

KeyAgreement通常更好,但是.NET Core 1.0中既不提供ECDH也不提供经典DH。

通常加密器应该计算一个随机IV(调用 aes.GenerateIV()同一对象用于多个操作)并且用密文呈现它。因此,加密采用密钥和明文并产生密文和IV。解密需要(关键字,IV,密文)并产生纯文本。

以上是关于如何使用Rijndael加密与.Net Core类库的主要内容,如果未能解决你的问题,请参考以下文章

Rijndael加密法

JAVA如何解密用PHP加密的base64编码和RIJNDAEL 256的数据?

Delphi DEC 库 (Rijndael) 加密

Rijndael-256 PHP 中的加密解密

ASP MVC 应用程序中的列加密与使用 .net Core / EF Core 的 SQL Server 2016

是否有像 PHP 一样进行 Rijndael 256 位加密的 JavaScript 库?