DataFlex
DataFlex
RSA Encrypt and Decrypt Credit Card Numbers
See more RSA Examples
_LANGUAGE_ sample code to RSA public-key encrypt and decrypt credit card numbers. The RSA key is loaded from an unencrypted PKCS8 file. Chilkat provides many ways of setting the key -- loading from both encrypted and unencrypted PEM, PKCS8, DER, PVK, etc. Keys may be loaded from files or in-memory representations. (The RSA component also provides the ability to generate RSA keys.)Chilkat DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Handle hoRsa
Variant vPrivKey
Handle hoPrivKey
Variant vPubKey
Handle hoPubKey
String sCcNumber
Boolean iUsePrivateKey
String sEncryptedStr
Handle hoRsaDecryptor
String sDecryptedStr
String sTemp1
Move False To iSuccess
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
Get Create (RefClass(cComChilkatRsa)) To hoRsa
If (Not(IsComObjectCreated(hoRsa))) Begin
Send CreateComObject of hoRsa
End
Get Create (RefClass(cComChilkatPrivateKey)) To hoPrivKey
If (Not(IsComObjectCreated(hoPrivKey))) Begin
Send CreateComObject of hoPrivKey
End
// Load an RSA private key from a file:
Get ComLoadAnyFormatFile Of hoPrivKey "rsaPrivateKey.key" "" To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoPrivKey To sTemp1
Showln sTemp1
Procedure_Return
End
// Get the public part of the private key.
Get Create (RefClass(cComChilkatPublicKey)) To hoPubKey
If (Not(IsComObjectCreated(hoPubKey))) Begin
Send CreateComObject of hoPubKey
End
Get pvComObject of hoPubKey to vPubKey
Get ComToPublicKey Of hoPrivKey vPubKey To iSuccess
Get pvComObject of hoPubKey to vPubKey
Get ComUsePublicKey Of hoRsa vPubKey To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoRsa To sTemp1
Showln sTemp1
Procedure_Return
End
// Encrypt a VISA credit card number:
// 1234-5678-0000-9999
Move "1234567800009999" To sCcNumber
Move False To iUsePrivateKey
Set ComEncodingMode Of hoRsa To "base64"
Get ComEncryptStringENC Of hoRsa sCcNumber iUsePrivateKey To sEncryptedStr
Showln "Encrypted:"
Showln sEncryptedStr
// Now decrypt:
Get Create (RefClass(cComChilkatRsa)) To hoRsaDecryptor
If (Not(IsComObjectCreated(hoRsaDecryptor))) Begin
Send CreateComObject of hoRsaDecryptor
End
Set ComEncodingMode Of hoRsaDecryptor To "base64"
Get pvComObject of hoPrivKey to vPrivKey
Get ComUsePrivateKey Of hoRsaDecryptor vPrivKey To iSuccess
Move True To iUsePrivateKey
Get ComDecryptStringENC Of hoRsaDecryptor sEncryptedStr iUsePrivateKey To sDecryptedStr
Showln "Decrypted:"
Showln sDecryptedStr
// Important: RSA encryption should only be used to encrypt small amounts of data.
// It is typically used for encrypting symmetric encryption
// keys such that a symmetric encryption algorithm, such as
// AES is then used to encrypt/decrypt bulk data
End_Procedure