AutoIt
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
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)