[ad_1]
मैं लाइब्रेरी में निर्मित C # का उपयोग करके RSA एल्गोरिदम का उपयोग करके एक स्ट्रिंग को एन्क्रिप्ट करने का प्रयास कर रहा हूं
System.Net.Cryptograhy.RSACryptoServiceProvider।
मान लीजिए मेरे पास एक निजी कुंजी है (जैसे):
` -- -- - BEGIN RSA PRIVATE KEY-- -- - MIICXQIBAAKBgQCFf3jKXbhn2GOiCzvAxLTmZ34BdFQyNDKt / 7 B3qQ1thmSPG / NK nrYG8OIHhDqIsGkT1YcEOQKEHPhgmtGj78Fxrv3AEi56VsYfJUTOJn9GTmqPrpk / zscIiD5HkWzx8JfOQS5uPHWwGmQpYftDod82nYinlwuZdAVOcz3 + 7 dShlQIDAQAB AoGAT2sCJQGUTtMAkso0Bf3 / 0 IIJCDx4SlWbQMA37zf28Q1ejXSHTAEXMRHkpawY VnD8UfxZkj2ILag + atovlWNwpJ + Qgw4 + t3KvPXEQB1LtMDa0q1fA + I3qU / 5 uiOCq 07 y1IWfhJ6UsfhXYV5gOmADeVrwnuGz6YUIBLQ6at3ebHgECQQDPo + 0 UUFC9z6ZX x2a6UNIFZB9YPmxy599GMjOQOf3tEYH + qn6tYz9oZu7cWrQzkoEJ7Uw7xQsqXADU ekfaL2f1AkEApJb6G4 + zB8gCWQy6DrqiK4Y6d1CN3s67uuZXMcpQEuju9jNBHwAj g8zdwNAf98dksRyt7XICROrxv5i7mvFvIQJAPau5eaQVJxsqk720xDfG + TTwnlwE B + jYhtfYOskOoz / k9UecUlE8 / vw7i5UhGoQz8UfasZHnrBAhavpapvIXlQJBAIPE q2 + tV / N + 2 QJaAgsQuAyIZf5n62zZrcov5tbh1cGN4uIQnq4m + kfmmBJpjW5dn + t7 vnM + tzpdrjVqHagqaoECQQCAZl + BLRqEQa9cKH5lpJ4k9L + 3 sX4LQjuwNkFyZTr / K6Tw5lZv4eBDWtlYToEL3mtgLR7BKEled5cHCZ6pr1nm -- -- - END RSA PRIVATE KEY-- -- -`
और मैं स्ट्रिंग को एन्क्रिप्ट करने के लिए इस निजी कुंजी का उपयोग करना चाहता हूं।
मैंने इंटरनेट पर ऐसे अधिकांश उदाहरण देखे हैं
`string data = "ABC"; RSACryptoServiceProvider crypto = new RSACryptoServiceProvider(); string cipherText = Encrypt(data, rsaCryptoServiceProvider.ExportParameters(false)); public static string Encrypt(string data, RSAParameters key) { using(var rsa = new RSACryptoServiceProvider()) { rsa.FromXmlString(PrivateKey); rsa.ImportParameters(key); var byteData = Encoding.UTF8.GetBytes(data); var encryptData = rsa.Encrypt(byteData, false); return Convert.ToBase64String(encryptData); } }`
लेकिन इस पद्धति में मैं प्रदान की गई निजी कुंजी का उपयोग नहीं कर रहा हूं।
क्या कोई प्रदान की गई निजी कुंजी का उपयोग करके एन्क्रिप्शन में मदद कर सकता है?
मैं अपनी निजी कुंजी से उचित सिफर टेक्स्ट प्राप्त करने की उम्मीद कर रहा हूं।
अग्रिम धन्यवाद। किसी भी मदद की सराहना की जाएगी।
मैंने क्या प्रयास किया है:
मैंने यह कोशिश की है
`string data = "ABC"; RSACryptoServiceProvider crypto = new RSACryptoServiceProvider(); string cipherText = Encrypt(data, rsaCryptoServiceProvider.ExportParameters(false)); public static string Encrypt(string data, RSAParameters key) { using(var rsa = new RSACryptoServiceProvider()) { rsa.ImportParameters(key); var byteData = Encoding.UTF8.GetBytes(data); var encryptData = rsa.Encrypt(byteData, false); return Convert.ToBase64String(encryptData); } }`
समाधान 1
यहां प्रारंभ करने का प्रयास करें: आरएसए निजी कुंजी एन्क्रिप्शन[^]
समाधान 2
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()) { //byte[] x509Key = ExportX509Key(rsaParameters); //rsa.ImportCspBlob(x509Key); 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; }
[ad_2]
コメント