Sample code for 30+ languages & platforms
AutoIt Requires Chilkat v11.0.0+

RSA Encrypt and Decrypt Strings

See more RSA Examples

_LANGUAGE_ sample code to RSA public-key encrypt and decrypt strings using public and private keys.

Chilkat AutoIt Downloads

AutoIt
Local $bSuccess = False

;  This example assumes the Chilkat API to have been previously unlocked.
;  See Global Unlock Sample for sample code.

$oRsa = ObjCreate("Chilkat.Rsa")

;  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 2048-bit key.  Chilkat RSA supports
;  key sizes ranging from 512 bits to 4096 bits.
$oPrivKey = ObjCreate("Chilkat.PrivateKey")
$bSuccess = $oRsa.GenKey(2048,$oPrivKey)
If ($bSuccess = False) Then
    ConsoleWrite($oRsa.LastErrorText & @CRLF)
    Exit
EndIf

$oPubKey = ObjCreate("Chilkat.PublicKey")
$oPrivKey.ToPublicKey($oPubKey)

Local $sPlainText = "Encrypting and decrypting should be easy!"

;  Start with a new RSA object to demonstrate that all we
;  need are the keys previously exported:
$oRsaEncryptor = ObjCreate("Chilkat.Rsa")

;  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".
$oRsaEncryptor.EncodingMode = "hex"

;  We'll encrypt with the public key and decrypt with the private
;  key.
$bSuccess = $oRsaEncryptor.UsePublicKey($oPubKey)

Local $bUsePrivateKey = False
Local $sEncryptedStr = $oRsaEncryptor.EncryptStringENC($sPlainText,$bUsePrivateKey)
ConsoleWrite($sEncryptedStr & @CRLF)

;  Now decrypt:
$oRsaDecryptor = ObjCreate("Chilkat.Rsa")

$oRsaDecryptor.EncodingMode = "hex"
$bSuccess = $oRsaDecryptor.UsePrivateKey($oPrivKey)

$bUsePrivateKey = True
Local $sDecryptedStr = $oRsaDecryptor.DecryptStringENC($sEncryptedStr,$bUsePrivateKey)

ConsoleWrite($sDecryptedStr & @CRLF)