private static string DoEncrypt(string input, SysCrypt.RSACryptoServiceProvider rsa) { if (input == null) return null; byte[] bytes = Encoding.UTF8.GetBytes(input); //int utf8bs = (rsa.KeySize / 8) - 2 - (2 * SysCrypt.SHA1.Create().ComputeHash(bytes).Length); int utf8bs = (rsa.KeySize / 8) - 42; int iterat = bytes.Length / utf8bs; StringBuilder sb = new StringBuilder(); for (int i = 0; i <= iterat; i++) { byte[] result = rsa.Encrypt(bytes.Skip(i * utf8bs).Take(utf8bs).ToArray(), true); //Array.Reverse(result); sb.Append(Convert.ToBase64String(result)); } return sb.ToString(); }