Chilkat HOME ASP Visual Basic VB.NET C# Visual C++ Delphi FoxPro Java Perl Python Ruby SQL Server VBScript
|
RSA Encryption -- Same Key Different ResultsThe 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.
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> </head> <body> <% set rsa = Server.CreateObject("Chilkat.Rsa") success = rsa.UnlockComponent("Anything for 30-day trial") If (success <> 1) Then Response.Write Server.HtmlEncode("RSA component unlock failed") & "<br>" End If ' RSA public key in XML format: publicKey = "<RSAKeyValue><Modulus>xxyv1RDPU0MvfFIIa98HppXdcuI7zSu8uIqyGAy/VoxPvxZFX0acajznvjVRHipHbpcO6ryo2LwXUPf89qOqLb3Qd1lfD2ZnH+TQ6MZXNxfFRxTpTUd+tTR4EBYpd2t6kzq8ZRJYLdlviaMQQqUEwR54k7Op5HJYVKUcHIkP1xE=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue>" 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" plainText = "RSA gives different results with each call, weird but OK" usePrivateKey = 0 encryptedStr1 = rsa.EncryptStringENC(plainText,usePrivateKey) Response.Write Server.HtmlEncode(encryptedStr1) & "<br>" ' Do it again. The results are different... encryptedStr2 = rsa.EncryptStringENC(plainText,usePrivateKey) Response.Write Server.HtmlEncode(encryptedStr2) & "<br>" ' Now decrypt both strings, and the results are correct ' in both cases: set rsa2 = Server.CreateObject("Chilkat.Rsa") rsa2.ImportPrivateKey privateKey rsa2.EncodingMode = "base64" usePrivateKey = 1 decryptedStr1 = rsa2.DecryptStringENC(encryptedStr1,usePrivateKey) Response.Write Server.HtmlEncode(decryptedStr1) & "<br>" decryptedStr2 = rsa2.DecryptStringENC(encryptedStr2,usePrivateKey) Response.Write Server.HtmlEncode(decryptedStr2) & "<br>" %> </body> </html> |
Need a specific example? Send a request to support@chilkatsoft.com
© 2000-2008 Chilkat Software, Inc. All Rights Reserved.