C # RSA encryption and decryption

Public Key

publicKeyStr = "MIGJAoGBALogQ4t/yzBSbKH6ScXA54pAeSjvC/R13RIif4jmTbcJLqGFaQmj5WQnnmJqFsCI8lnTr4dmHcmSPvNhtWnEAznHBhGftQqcDuPmQNROMfUB7PKMteSWPhI5FpRxIXTTZC6GU6/xOklVxy24+zqSqMyYX9BOD8MxetvW9HYsSufNAgMBAAE=";

Private key

privateKeyStr = "MIICXgIBAAKBgQC6IEOLf8swUmyh+knFwOeKQHko7wv0dd0SIn+I5k23CS6hhWkJo+VkJ55iahbAiPJZ06+HZh3Jkj7zYbVpxAM5xwYRn7UKnA7j5kDUTjH1AezyjLXklj4SORaUcSF002QuhlOv8TpJVcctuPs6kqjMmF/QTg/DMXrb1vR2LErnzQIDAQABAoGBALjzRItDMsJStVYDovkZ5jrQNFVDrQp/cG0L0NVVnNYMDsU8D5MfxNtQLye2KeOqccBnBJ40D9d0No+cgSuXNmepkQVPy83iSOcL4tbR8Hhhh3jSn8hdkwoRgpLH9dO5PsNqP6Yunx0d99NW5qwTROAtWpScwCSaBxu3LKVJA8IVAkEA6cvD2lzZbTlDxULPo8RUqJ40pWZzZSbxbx5xwN6nWHLXpTJ175NtBjqTV7iQyhwQuIM1Oe1FEPwbXQTH0nkl7wJBAMvNgmBlN4P2LE5ZTjtVG3jw7DHlKb53zh0Kgwss3WePlYMpkQfGcYYwz/0E7zihmhgiohYb7Czc/sYoSTX96gMCQQCdeL+sHoncRYveG8gbeCvFfvnaxgzHftlzjL/1toJk0sVo4XoKKfRvE5kWppvvZcPlY4rAP44biJMtrgChRTRFAkAcpM6tM6ygzGmfvWeEaUrKLbpUrOu4DGiYplCSsoSPuJt/6siqehackKG64wWoRPY+bCexyczg5VKdkS3w+7X3AkEAuh6w7qL687jibL70z1lNhXZkLijnMEoD6s9qhCklh+s6iTKjTQ5x7aTitUoMaxxOk7dTvF8fBDRDJywMfrLnuA==";

encryption

private static string Encrypted(string data, string pubkey)
{
using RSA rsa = RSA.Create();
var publicKey = Convert.FromBase64String(pubkey);
rsa.ImportRSAPublicKey(publicKey, out int bytesreadPublic);

was dataArr = Encoding.UTF8.GetBytes (data);
was maxBufferSize = rsa.KeySize / 8-11;
was len = dataArr.Length;

using MemoryStream msread = new MemoryStream();
using MemoryStream mswrite = new MemoryStream();
while (len > 0)
{
msread.Position = 0;
msread.Write(dataArr, dataArr.Length - len, Math.Min(maxBufferSize, len));
mswrite.Write(rsa.Encrypt(msread.ToArray(), RSAEncryptionPadding.Pkcs1));
len -= maxBufferSize;
}

var resStr = Convert.ToBase64String(mswrite.ToArray());

return resStr;
}

Decryption

private static string Decrypted(string data, string prikey)
{
using RSA rsa = RSA.Create();
var privateKey = Convert.FromBase64String(prikey);
rsa.ImportRSAPrivateKey(privateKey, out int bytesreadPrivate);

was dataArr = Convert.FromBase64String (data);
was maxBufferSize = rsa.KeySize / 8;
was len = dataArr.Length;

using MemoryStream msread = new MemoryStream();
using MemoryStream mswrite = new MemoryStream();
while (len > 0)
{
msread.Position = 0;
msread.Write(dataArr, dataArr.Length - len, Math.Min(maxBufferSize, len));
mswrite.Write(rsa.Decrypt(msread.ToArray(), RSAEncryptionPadding.Pkcs1));
len -= maxBufferSize;
}

var resStr = Encoding.UTF8.GetString(mswrite.ToArray());

return resStr;
}

Guess you like

Origin www.cnblogs.com/lovewl2/p/11612646.html