Sample code for 30+ languages & platforms
AutoIt

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)