Skip to content

Instantly share code, notes, and snippets.

@maxfridbe
Created November 15, 2012 16:31
Show Gist options
  • Save maxfridbe/4079564 to your computer and use it in GitHub Desktop.
Save maxfridbe/4079564 to your computer and use it in GitHub Desktop.
RSA ENCRYPT-DECRYPT
public static class RSAClass
{
private static UnicodeEncoding _encoder = new UnicodeEncoding();
public static string Decrypt(string data, string xmlPrivateKey)
{
var rsa = new RSACryptoServiceProvider();
var dataArray = data.Split(new char[] { ',' });
var dataByte = new byte[dataArray.Length];
for (int i = 0; i < dataArray.Length; i++)
{
dataByte[i] = Convert.ToByte(dataArray[i]);
}
rsa.FromXmlString(xmlPrivateKey);
var decryptedByte = rsa.Decrypt(dataByte, false);
return _encoder.GetString(decryptedByte);
}
public static string Encrypt(string data, string xmlPublicKey)
{
var rsa = new RSACryptoServiceProvider();
rsa.FromXmlString(xmlPublicKey);
var dataToEncrypt = _encoder.GetBytes(data);
var encryptedByteArray = rsa.Encrypt(dataToEncrypt, false).ToArray();
var length = encryptedByteArray.Count();
var item = 0;
var sb = new StringBuilder();
foreach (var x in encryptedByteArray)
{
item++;
sb.Append(x);
if (item < length)
sb.Append(",");
}
return sb.ToString();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment