C# Examples

ChilkatHOMEASPVisual BasicVB.NETC#Visual C++CMFCDelphiFoxProJavaPerlPHPPythonRubySQL ServerVBScript

C# Examples

Bounced Mail
Bz2
Character Encoding
CSV
Digital Certificates
Digital Signatures
Email
FTP
HTML to XML
HTTP
IMAP
Encryption
MHT / HTML Email
MIME
POP3
RSA
S/MIME
SMTP
Socket
Spider
SSH
SSH Tunnel
SSH Key
SFTP
Tar Archive
Upload
XML
XMP
Zip Compression


More Examples...
Email Object
DKIM / DomainKey
NTLM
FileAccess
RSS
Atom
String
Byte Array
Self-Extractor
Service
PPMD
Deflate
DH Key Exchange
DSA
Bzip2
LZW

 

 

 

 

 

 

RSA Encryption -- Same Key Different Results

Download Chilkat .NET for 2.0 / 3.5 Framework

Download Chilkat .NET for 1.0 / 1.1 Framework

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();


 

Need a specific example? Send a request to support@chilkatsoft.com

© 2000-2010 Chilkat Software, Inc. All Rights Reserved.

Email Component · XML Parser