using System; using System.Security.Cryptography; namespace SiteCore { public class RSAHelper { private const int RsaKeySize = 1024; private static string publicKey = "wlvRUITlK450HUCZVIe8kJPWyYcDrecFYKGjDRxHvZnhm+7DJ41V9a8FEH3KLT9tGm8RAbL/gt8TZXAw5ymbe1Yoph1cjaDVyNxPrroUq13+jDjlYjxA089W91pwz7p7I4lnbD9mcSnI0aPNJlLAuCAkhF+48GR40iEBhr2GkHc=AQAB"; private static string privateKey = "wlvRUITlK450HUCZVIe8kJPWyYcDrecFYKGjDRxHvZnhm+7DJ41V9a8FEH3KLT9tGm8RAbL/gt8TZXAw5ymbe1Yoph1cjaDVyNxPrroUq13+jDjlYjxA089W91pwz7p7I4lnbD9mcSnI0aPNJlLAuCAkhF+48GR40iEBhr2GkHc=AQAB

6Eo9sSWHe4Lr16ZmVrGKYtXDO3kKlNuuLfdtjLtBLvYWBBoYjX1onKBr2+WAhNQc8zzU5riY1J5ZpBu20CkSQw==

1jJtX6IfLDGIH0Li+BQyUif928/bK7Jp8rd/3Bt3QE+3N4OE7hKTGOYAQXHxBhLM/kfNsaQovT9A12FrytbHvQ==4q7Ig13/V83Mf1cYWZPKW2cFrb0SUXAMCzmBQ6vdEYn+tCQPP8xZUTfP6fiOMZGZatk7XqhYJG0fR2HwRjU+Zw==U25K6eAlEjqs0bhk3cpIG3YWTGM29FtHJ1JQTDSqi3NBYy8oPO8hOqaD3Pn7rqjuDfF77kCJ2cTkhcAdk2F7ZQ==4wA4X00g46Nh+w++A8g6PzVH8T23wC+SdXu+g+33FMidzP3Lf8HubUwFcQGQ5IrmBZQ5guyoraPpnXdH6ojYeA==JlJoURIDBbWO232zPeGNoowj25SNeyqD+uuj9J/Q3WeL/mzzecb6XfjmbLwAsy9AWefwWH9stec6MdQPMGUZzL3FITj32xrgIZchu3mPFKuqBmNYMYtKUIs9gshqc5FWsO+hjO08SehkdxQt/Tkyjt7Ok3v1hx3rkOtH0V6lZTE=
"; /// /// 用给定路径的RSA公钥文件加密纯文本。 /// /// 要加密的文本 /// 用于加密的公钥路径. /// 表示加密数据的64位编码字符串. public static string Encrypt(string plainText) { using (var rsa = new RSACryptoServiceProvider(RsaKeySize)) { try { //加载公钥 rsa.FromXmlString(publicKey); var bytesToEncrypt = System.Text.Encoding.Unicode.GetBytes(plainText); var bytesEncrypted = rsa.Encrypt(bytesToEncrypt, false); return Convert.ToBase64String(bytesEncrypted); } finally { rsa.PersistKeyInCsp = false; } } } /// /// Decrypts encrypted text given a RSA private key file path.给定路径的RSA私钥文件解密 加密文本 /// /// 加密的密文 /// 用于加密的私钥路径. /// 未加密数据的字符串 public static string Decrypt(string encryptedText) { using (var rsa = new RSACryptoServiceProvider(RsaKeySize)) { try { rsa.FromXmlString(privateKey); var bytesEncrypted = Convert.FromBase64String(encryptedText); var bytesPlainText = rsa.Decrypt(bytesEncrypted, false); return System.Text.Encoding.Unicode.GetString(bytesPlainText); } finally { rsa.PersistKeyInCsp = false; } } } } }