| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- using System;
- using System.Security.Cryptography;
- namespace SiteCore
- {
- public class RSAHelper
- {
- private const int RsaKeySize = 1024;
- private static string publicKey = "<RSAKeyValue><Modulus>wlvRUITlK450HUCZVIe8kJPWyYcDrecFYKGjDRxHvZnhm+7DJ41V9a8FEH3KLT9tGm8RAbL/gt8TZXAw5ymbe1Yoph1cjaDVyNxPrroUq13+jDjlYjxA089W91pwz7p7I4lnbD9mcSnI0aPNJlLAuCAkhF+48GR40iEBhr2GkHc=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue>";
- private static string privateKey = "<RSAKeyValue><Modulus>wlvRUITlK450HUCZVIe8kJPWyYcDrecFYKGjDRxHvZnhm+7DJ41V9a8FEH3KLT9tGm8RAbL/gt8TZXAw5ymbe1Yoph1cjaDVyNxPrroUq13+jDjlYjxA089W91pwz7p7I4lnbD9mcSnI0aPNJlLAuCAkhF+48GR40iEBhr2GkHc=</Modulus><Exponent>AQAB</Exponent><P>6Eo9sSWHe4Lr16ZmVrGKYtXDO3kKlNuuLfdtjLtBLvYWBBoYjX1onKBr2+WAhNQc8zzU5riY1J5ZpBu20CkSQw==</P><Q>1jJtX6IfLDGIH0Li+BQyUif928/bK7Jp8rd/3Bt3QE+3N4OE7hKTGOYAQXHxBhLM/kfNsaQovT9A12FrytbHvQ==</Q><DP>4q7Ig13/V83Mf1cYWZPKW2cFrb0SUXAMCzmBQ6vdEYn+tCQPP8xZUTfP6fiOMZGZatk7XqhYJG0fR2HwRjU+Zw==</DP><DQ>U25K6eAlEjqs0bhk3cpIG3YWTGM29FtHJ1JQTDSqi3NBYy8oPO8hOqaD3Pn7rqjuDfF77kCJ2cTkhcAdk2F7ZQ==</DQ><InverseQ>4wA4X00g46Nh+w++A8g6PzVH8T23wC+SdXu+g+33FMidzP3Lf8HubUwFcQGQ5IrmBZQ5guyoraPpnXdH6ojYeA==</InverseQ><D>JlJoURIDBbWO232zPeGNoowj25SNeyqD+uuj9J/Q3WeL/mzzecb6XfjmbLwAsy9AWefwWH9stec6MdQPMGUZzL3FITj32xrgIZchu3mPFKuqBmNYMYtKUIs9gshqc5FWsO+hjO08SehkdxQt/Tkyjt7Ok3v1hx3rkOtH0V6lZTE=</D></RSAKeyValue>";
- /// <summary>
- /// 用给定路径的RSA公钥文件加密纯文本。
- /// </summary>
- /// <param name="plainText">要加密的文本</param>
- /// <param name="pathToPublicKey">用于加密的公钥路径.</param>
- /// <returns>表示加密数据的64位编码字符串.</returns>
- 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;
- }
- }
- }
- /// <summary>
- /// Decrypts encrypted text given a RSA private key file path.给定路径的RSA私钥文件解密 加密文本
- /// </summary>
- /// <param name="encryptedText">加密的密文</param>
- /// <param name="pathToPrivateKey">用于加密的私钥路径.</param>
- /// <returns>未加密数据的字符串</returns>
- 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;
- }
- }
- }
- }
- }
|