Эквивалент jQuery jCryption в C#
У меня есть код C# для имитации метода шифрования jQuery jCryption:
public static string Encrypt(string plainText, string modulus, string exponent)
{
RSAParameters rsaParams = new RSAParameters
{
Modulus = HexStringToByteArray(modulus),
Exponent = HexStringToByteArray(exponent)
};
using (RSACryptoServiceProvider rsa = new RSACryptoServiceProvider())
{
rsa.ImportParameters(rsaParams);
byte[] dataBytes = Encoding.UTF8.GetBytes(plainText);
byte[] encryptedData = rsa.Encrypt(dataBytes, false);
return BitConverter.ToString(encryptedData).Replace("-", "").ToLower();
}
}
public static byte[] HexStringToByteArray(string hex)
{
int length = hex.Length / 2;
byte[] bytes = new byte[length];
for (int i = 0; i < length; i++)
{
bytes[i] = Convert.ToByte(hex.Substring(i * 2, 2), 16);
}
return bytes;
}
К сожалению, это не дает того же результата, что и jCryption. Я имею в виду, что сервер правильно проверяет код Javascript, в то время как код С# неправильный.
РЕДАКТИРОВАТЬ:файл jquery jcryption, который я разместил здесь.