[C#/.NET Core].NET Core(.NET 5)如何实现RSA加密和RSA解密算法呢?
在.NET Core(.NET 5)的应用程序编程开发中,现需要用RSA加密和解密一些数据。查了微软的RSA类,但只看到抽象类https://msdn.microsoft.com/en-us/library/system.security.cryptography.rsa(v=vs.110).aspx。
其实现方式与.NET Framework的实现有些不一样。
那么,在.NET Core(.NET 5)的应用程序编程开发中,如何实现RSA加密和RSA解密算法呢?
2 个回答
-
在可能的情况下,请尽量避免使用
RSACryptoServiceProvider
,因为它只适用于Windows操作系统,如果你的应用程序需要跨平台运行,则使用RSACryptoServiceProvider
实现的RSA加密、解密将在非Windows操作系统下失效。因此,我们需要自己动手实现兼容跨平台的RSA加密,解密方法,示例代码如下:
以上RSA帮助类中使用了读,写PEM格式文件的第三方工具PemUtils,可以能等NuGet程序包安装,命令为:
PM> Install-Package PemUtils
.NET Core(.NET 5)中调用并实现RSA加密算法的加密,解密示例如下:
输出结果:
-
如果你不想自己实现.NET Core(.NET 5)的RSA加密,解密算法,还可以使用开源的RSA类库,比如:NETCore.Encrypt。此类库专门用于.NET Core应用程序的加密,解密等操作,提供了多种.NET Core加密,解密方式,如:AES加密,AES解密,DES加密,DES解密,RSA加密,RSA解密,MD5加密,SHA加密,HMAC加密,Base64加密,Base64解密等等。
可通过如下任意一种方式安装:
1.通过NuGet包管理命令安装
2.dotnet cli命令
基于.NET Core的RSA加密,解密提供了
RsaSize
枚举:创建RSA密钥的方式如下:
如果要进行签名和验证,则:
RSA加密示例:
RSA解密示例:
使用PEM格式进行RSA加密,解密示例如下: