public string GetEncryptValue(long connectionNumber)
{
long creditCardNumber = (connectionNumber);
string publicKey = ConfigSettings.GetMobikwickEncrypKey();
string encryptedCreditCard = EncryptWithRSA(creditCardNumber, publicKey);
byte[] encryptedBytes = Convert.FromBase64String(encryptedCreditCard);
string decryptedData = Encoding.UTF8.GetString(encryptedBytes);
return encryptedCreditCard;
}
static string EncryptWithRSA(long dataToEncrypt, string publicKey)
{
try
{
RSAParameters rsaParameters = GetRSAParametersFromKey(publicKey);
using (RSACryptoServiceProvider rsa = new RSACryptoServiceProvider())
{
rsa.ImportParameters(rsaParameters);
byte[] dataBytes = BitConverter.GetBytes(dataToEncrypt);
Array.Resize(ref dataBytes, 8);
byte[] encryptedData = rsa.Encrypt(dataBytes, false);
string encryptedBase64 = Convert.ToBase64String(encryptedData);
return encryptedBase64;
}
}
catch (Exception ex)
{
Console.WriteLine("Encryption failed: " + ex.Message);
}
return "";
}
static RSAParameters GetRSAParametersFromKey(string publicKeyValue)
{
byte[] modulusBytes = Encoding.UTF8.GetBytes(publicKeyValue);
Array.Resize(ref modulusBytes, 256);
byte[] exponentBytes = { 1, 0, 1 };
RSAParameters rsaParameters = new RSAParameters
{
Modulus = modulusBytes,
Exponent = exponentBytes
};
return rsaParameters;
}