.net core 如何将公钥导入RSA以在.net core中进行加密
我有publicKey.key,我想把它导入rsa加密 这是我的代码:.net core 如何将公钥导入RSA以在.net core中进行加密,.net-core,rsa,public-key-encryption,asp.net-core-webapi,asp.net-core-1.1,.net Core,Rsa,Public Key Encryption,Asp.net Core Webapi,Asp.net Core 1.1,我有publicKey.key,我想把它导入rsa加密 这是我的代码: using (RSA rsa = RSA.Create()) { var key = Encoding.UTF8.GetBytes("012345678901234567890"); byte[] publicKey = File.ReadAllBytes("text/publicKey.key"); var result = rsa.Encrypt(key, RSAEncryptionPaddi
using (RSA rsa = RSA.Create())
{
var key = Encoding.UTF8.GetBytes("012345678901234567890");
byte[] publicKey = File.ReadAllBytes("text/publicKey.key");
var result = rsa.Encrypt(key, RSAEncryptionPadding.Pkcs1);
}
.NET Core(或Framework)没有加载裸密钥文件的内置方法
您有两个选择:
- 将公钥包装到证书中并使用
cert.GetRSAPublicKey()
- 使用
复制每个字段的所有十六进制值,并将它们直接导入到openssl rsa-in-text/publicKey.key-text-noout
结构中(然后调用rsapameters
)rsa.ImportParameters(rsaparms)
- 研究(ASN.1),(DER),(RSA)和(如果您想读取PEM编码的密钥)以读取密钥文件,然后将其解析为
结构,并使用rsapertameters
RSA.ImportParameters(rsaParams)
...
using( RSA rsa = RSA.Create())
{
var publicKeyBytes = Convert.FromBase64String(yourPublicKey);
rsa.ImportRSAPublicKey(publicKeyBytes,bytesRead:out int _);
var encryptedResult = rsa.Encrypt(yourData, RsaEncryptionPadding.Pkcs1);
}
...