generate Token by passing Privatekey and jsonstring data using SHA1withRSA
string privateKey = @"-----BEGIN RSA PRIVATE KEY-----
MIICXQIBAAKBgQD4Pw6Z7tSILIQIZOlDGk0/EnmHj2QJ+sCG6C0WQ7UilB6M4MiU
wXHRCdAUIsKrD4kS0eyPkGGX1I5aJXZOG5avVKBAV4QKses/rhXn9RknZvIyZnT+
b6twbQXnomLyf5ikim/qycTGDLrq1YzJfsKXIP0sjUnTwz+rz/Uk/U6DqwIDAQAB
AoGASPowjqwZKpb7kYQo1qMqxjnmJCXRIOXoJ0Cl0H/DBhFJEd0a2jAsB2m9E85M
MAF3KGMyCdpF9l50IqgUqU2O9BPSmMFR1TtcZuSa9/iAtMzT0r8gea0SyLwEGZaM
JccnbFYCdVt8A/33m0uFzSi6/zDwBGnFJFNcycmiMBrktaECQQD8rzFzpR+U0m0A
BSADnX5735zUz2h9p5ZDtG3oUQWBQepgHmKGqN9Aq+FuOwkJnoCwePpp4568zF4F
BvhvfxypAkEA+4D0sB7uVwk4SmIloNg0T91OcNYuafhLY1/OCq0sppI1pEnjEhzJ
Fgy8ByDzUM95D7aJwonDfR73EmRHOKAeMwJBANezkipfVeNL8iJnPZn4cwW5sH52
A4PocLyhJIWBzIo3w6SDq6W6OMJTN6BKov9kIAUFcPa9iT8v0j7GYYOEZekCQHj8
zTkYeCGojsrBskZRG8E7vitr7YIO7v1MLktWiX9MIL/6x2CENnwD/kQTptk+JYfY
kSbjrQY46jSPxu9Hn58CQQDT5Z9aMxYKTkc5uL/a5xpSMrW+zBbYgzvEQVxGkaFX
soiLEMZTUoURIZUsngsw5J1OO05iAGrKEHpM/9ozneiG
-----END RSA PRIVATE KEY-----"
string JsonString = "{\"UserID\":\"1\",\"UserName\":\"Ayyappa\",\"txnId\":\"123456\",\"customerMob\":\"8569896857\",\"lname\":\"lakshman\",\"name\":\"Balasubbiramani\",\"mname\":\"ram\",\"productCode\":\"DMT\",\"address\":\"Mumbai\",\"dateOfBirth\":\"05/10/1982\",\"agentId\":\"CUSTOMER123456\",\"partnerId\":\"4121\",\"kycStatus\":\"0\",\"pancardStatus\":\"0\",\"identityDocType\":\"0\",\"identityDocNo\":\"BgQkkDr14...\",\"channel\":\"4\",\"isOTPValidated\":\"0\",\"hashKey\":\"b2b7e6c8f6f011e2b6396c4d36d4ecd6\"}";
This is my Requirement

Naimish MakwanaPosted May 23, 2023, 11:58 AM
Try below:
Thanks
Nagaveni KatariPosted May 24, 2023, 11:32 AM
public static string GenerateToken(string privateKeyXml, string jsonString)
{
string privatekeyXml = ConvertKeyToXml();
// Load the private key from XML
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
rsa.FromXmlString(privatekeyXml);
// Convert the JSON string to bytes
byte[] data = Encoding.UTF8.GetBytes(jsonString);
// Compute the SHA1 hash of the data
SHA1Managed sha1 = new SHA1Managed();
byte[] hash = sha1.ComputeHash(data);
// Encrypt the hash with RSA
byte[] encryptedHash = rsa.SignHash(hash, CryptoConfig.MapNameToOID("SHA1"));
// Convert the encrypted hash to Base64 string
string token = Convert.ToBase64String(encryptedHash);
return token;
public static string ConvertKeyToXml()
{ stringprivatekey="MIICXQIBAAKBgQD4Pw6Z7tSILIQIZOlDGk0/EnmHj2QJ+sCG6C0WQ7UilB6M4MiUwXHRCdAUIsKrD4kS0eyPkGGX1I5aJXZOG5avVKBAV4QKses / rhXn9RknZvIyZnT +b6twbQXnomLyf5ikim / qycTGDLrq1YzJfsKXIP0sjUnTwz + rz / Uk / U6DqwIDAQABAoGASPowjqwZKpb7kYQo1qMqxjnmJCXRIOXoJ0Cl0H / DBhFJEd0a2jAsB2m9E85MMAF3KGMyCdpF9l50IqgUqU2O9BPSmMFR1TtcZuSa9 / iAtMzT0r8gea0SyLwEGZaMJccnbFYCdVt8A / 33m0uFzSi6 / zDwBGnFJFNcycmiMBrktaECQQD8rzFzpR + U0m0ABSADnX5735zUz2h9p5ZDtG3oUQWBQepgHmKGqN9Aq + FuOwkJnoCwePpp4568zF4FBvhvfxypAkEA + 4D0sB7uVwk4SmIloNg0T91OcNYuafhLY1 / OCq0sppI1pEnjEhzJFgy8ByDzUM95D7aJwonDfR73EmRHOKAeMwJBANezkipfVeNL8iJnPZn4cwW5sH52A4PocLyhJIWBzIo3w6SDq6W6OMJTN6BKov9kIAUFcPa9iT8v0j7GYYOEZekCQHj8zTkYeCGojsrBskZRG8E7vitr7YIO7v1MLktWiX9MIL / 6x2CENnwD / kQTptk + JYfYkSbjrQY46jSPxu9Hn58CQQDT5Z9aMxYKTkc5uL / a5xpSMrW + zBbYgzvEQVxGkaFXsoiLEMZTUoURIZUsngsw5J1OO05iAGrKEHpM / 9ozneiG";
byte[] keyBytes = Convert.FromBase64String(privatekey);
RSAParameters rsaParameters = new RSAParameters();
rsaParameters.Modulus = GetBytesFromArray(keyBytes, 28, 128);
rsaParameters.Exponent = GetBytesFromArray(keyBytes, 156, 3);
RSA rsa = RSA.Create();
rsa.ImportParameters(rsaParameters);
string publicKeyXml = rsa.ToXmlString(false);
return publicKeyXml;
}
private static byte[] GetBytesFromArray(byte[] array, int start, int length)
{
byte[] result = new byte[length];
Array.Copy(array, start, result, 0, length);
return result;
}
convert the private key into Xml format