Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- uses
- Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
- Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Chilkat_v9_5_0_TLB;
- ...
- procedure TForm1.Button1Click(Sender: TObject);
- var
- rsa: TChilkatRsa;
- success: Integer;
- publicKey: PWideChar;
- privateKey: PWideChar;
- plainText: PWideChar;
- rsaEncryptor: TChilkatRsa;
- usePrivateKey: Integer;
- encryptedStr: PWideChar;
- rsaDecryptor: TChilkatRsa;
- decryptedStr: PWideChar;
- begin
- rsa := TChilkatRsa.Create(Self);
- success := rsa.UnlockComponent('Anything for 30-day trial');
- if (success <> 1) then
- begin
- Memo1.Lines.Add('RSA component unlock failed');
- Exit;
- end;
- // This example also generates the public and private
- // keys to be used in the RSA encryption.
- // Normally, you would generate a key pair once,
- // and distribute the public key to your partner.
- // Anything encrypted with the public key can be
- // decrypted with the private key. The reverse is
- // also true: anything encrypted using the private
- // key can be decrypted using the public key.
- // Generate a 1024-bit key. Chilkat RSA supports
- // key sizes ranging from 512 bits to 4096 bits.
- success := rsa.GenerateKey(1024);
- if (success <> 1) then
- begin
- Memo1.Lines.Add(rsa.LastErrorText);
- Exit;
- end;
- // Keys are exported in XML format:
- publicKey := rsa.ExportPublicKey();
- privateKey := rsa.ExportPrivateKey();
- plainText := 'Encrypting and decrypting should be easy!';
- // Start with a new RSA object to demonstrate that all we
- // need are the keys previously exported:
- rsaEncryptor := TChilkatRsa.Create(Self);
- // Encrypted output is always binary. In this case, we want
- // to encode the encrypted bytes in a printable string.
- // Our choices are "hex", "base64", "url", "quoted-printable".
- rsaEncryptor.EncodingMode := 'hex';
- // We'll encrypt with the public key and decrypt with the private
- // key. It's also possible to do the reverse.
- success := rsaEncryptor.ImportPublicKey(publicKey);
- usePrivateKey := 0;
- encryptedStr := rsaEncryptor.EncryptStringENC(plainText,usePrivateKey);
- Memo1.Lines.Add(encryptedStr);
- // Now decrypt:
- rsaDecryptor := TChilkatRsa.Create(Self);
- rsaDecryptor.EncodingMode := 'hex';
- success := rsaDecryptor.ImportPrivateKey(privateKey);
- usePrivateKey := 1;
- decryptedStr := rsaDecryptor.DecryptStringENC(encryptedStr,usePrivateKey);
- Memo1.Lines.Add(decryptedStr);
- end;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement