Chilkat HOME Android™ ASP Visual Basic VB.NET C# iOS (IPhone) Objective-C C++ C Unicode C++ Unicode C MFC Delphi DLL Delphi ActiveX FoxPro Java Perl PHP Extension PHP ActiveX Python PowerShell Ruby SQL Server VBScript
RSA Encryption -- Same Key Different ResultsDownload: Chilkat .NET Assemblies The RSA encryption algorithm produces different results for each call, even when encrypting the same data with the same key. Decryption however, will produce the correct results. This example demonstrates. Chilkat.Rsa rsa = new Chilkat.Rsa(); bool success; success = rsa.UnlockComponent("Anything for 30-day trial"); if (success != true) { MessageBox.Show("RSA component unlock failed"); return; } // RSA public key in XML format: string publicKey; publicKey = "<RSAKeyValue><Modulus>xxyv1RDPU0MvfFIIa98HppXdcuI7zSu8uIqyGAy/VoxPvxZFX0acajznvjVRHipHbpcO6ryo2LwXUPf89qOqLb3Qd1lfD2ZnH+TQ6MZXNxfFRxTpTUd+tTR4EBYpd2t6kzq8ZRJYLdlviaMQQqUEwR54k7Op5HJYVKUcHIkP1xE=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue>"; string privateKey; privateKey = "<RSAKeyValue><Modulus>xxyv1RDPU0MvfFIIa98HppXdcuI7zSu8uIqyGAy/VoxPvxZFX0acajznvjVRHipHbpcO6ryo2LwXUPf89qOqLb3Qd1lfD2ZnH+TQ6MZXNxfFRxTpTUd+tTR4EBYpd2t6kzq8ZRJYLdlviaMQQqUEwR54k7Op5HJYVKUcHIkP1xE=</Modulus><Exponent>AQAB</Exponent><P>4cpW9fvG99Jsz8/AO7PDHTl+pPRAglksrR2kClLV2g9DEeFe/bvmCxLUgMCJ+0eGQ1zA6aA7McKr13zTQ7jKpQ==</P><Q>4cCS/kFlq/P1ExF37Fkh4pCodOEGutepLEG7Q/KljT3ZGlAY+2l8fGu4f+hrkUuGoFl7NOMaJflULoPIgQaq/Q==</Q><DP>lkjcSsvzqh3YKRXJiLNkyf3rypV8noYGU4+oEOsDxilkZfFRDafUPUiiQrRk4ui/d/SzvozU+ZDuWfaOk8PatQ==</DP><DQ>SYCD25i7W8Mwdibn3uIecEAdOQDTSh5RjIFSUYs9b8FFYJXXrHPp/jCsf6jS7RmkGa1Iui1/JAIL8KEjtS7QmQ==</DQ><InverseQ>EDAJa3TpNdPQ3GIdBpnTgFTQY5A60DcszsUW/iCYoXQdPVJ9BLBxVTe9jiLzGuNuzLkVBwQlCy0Bf84hACRV9A==</InverseQ><D>cMFdDYKkddlRNczaugOmOH8b1egpx2liSPs6GYZ2gFObAXJiPK8m+r6c2ckls7hrlUP0DZhi4cG6Tn7xANb0Ek17P7QquVhQYOmFy/YHzm+IJbcwwq7pJHhZBhtcjyXqfUZ+BADGE//GQbrSVwVltpOj5KcxG88NAprLn2MMxfE=</D></RSAKeyValue>"; rsa.ImportPublicKey(publicKey); // Encrypt a string and return the encrypted data base64-encoded: rsa.EncodingMode = "base64"; string plainText; plainText = "RSA gives different results with each call, weird but OK"; bool usePrivateKey; usePrivateKey = false; string encryptedStr1; encryptedStr1 = rsa.EncryptStringENC(plainText,usePrivateKey); textBox1.Text += encryptedStr1 + "\r\n"; textBox1.Refresh(); // Do it again. The results are different... string encryptedStr2; encryptedStr2 = rsa.EncryptStringENC(plainText,usePrivateKey); textBox1.Text += encryptedStr2 + "\r\n"; textBox1.Refresh(); // Now decrypt both strings, and the results are correct // in both cases: Chilkat.Rsa rsa2 = new Chilkat.Rsa(); rsa2.ImportPrivateKey(privateKey); rsa2.EncodingMode = "base64"; usePrivateKey = true; string decryptedStr1; decryptedStr1 = rsa2.DecryptStringENC(encryptedStr1,usePrivateKey); textBox1.Text += decryptedStr1 + "\r\n"; textBox1.Refresh(); string decryptedStr2; decryptedStr2 = rsa2.DecryptStringENC(encryptedStr2,usePrivateKey); textBox1.Text += decryptedStr2 + "\r\n"; textBox1.Refresh(); |
© 2000-2013 Chilkat Software, Inc. All Rights Reserved.