using System; using System.Collections; using System.Collections.Generic; using System.Text; using System.Security.Cryptography; public class Programa { public static void Main(string[] args) { var methodName = "Tools/SubscriberCampaignActivation".ToLower(); var stringToHash = "5aafc741ff855d9e" + methodName; string methodHash = ""; using (MD5 md5Hash = MD5.Create()) { byte[] data = md5Hash.ComputeHash(Encoding.UTF8.GetBytes(stringToHash)); StringBuilder sBuilder = new StringBuilder(); for (int i = 0; i < data.Length; i++) {sBuilder.Append(data[i].ToString("x2"));} methodHash = sBuilder.ToString(); Console.WriteLine("The MD5 hash of " + stringToHash + " is: " + methodHash + "."); } string publicKey = "wEyodsTjUtDbb8A652Dh/ZPwLoZKAA9N20T5hiUNtGFxnSRWh9xB1WIAwtnz9FDLsT73PiiPyiBLhmI511cyAC+upKqKCtk7OR0fHzlRaH/h7H71X4PAxxes0xYLuEaPwNcanLSB1Tb5e84/JqrZhSqkIxaV5CgNVlRwiU7V5WM=AQAB"; Encryptor encryptor = new Encryptor(); string token = encryptor.EncryptRSA(methodHash, publicKey); Console.WriteLine("RSA is: " + token); } } class Encryptor { private static UnicodeEncoding _encoder = new UnicodeEncoding(); public string EncryptRSA(string data, string publicKey) { try{ var rsa = new RSACryptoServiceProvider(); rsa.FromXmlString(publicKey); var dataToEncrypt = _encoder.GetBytes(data); byte[] encryptedByteArray = rsa.Encrypt(dataToEncrypt, false);//.ToArray(); var length = encryptedByteArray.Length;//Count var item = 0; var sb = new StringBuilder(); Console.WriteLine("RSA ECncrypt is: " + encryptedByteArray.Length); Console.WriteLine("RSA ECncrypt is: " + data); for(var i = 0; i < data.Length;++i){ Console.WriteLine(data[i]); } foreach (var x in encryptedByteArray){ item++; sb.Append(x); if (item < length) sb.Append(",");} return sb.ToString(); }catch (Exception ex) { throw new RSAException(); } } class RSAException : Exception { public RSAException() : base("RSA Encryption Error"){} } }