Visual FoxPro
Visual FoxPro
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 Visual FoxPro Downloads
LOCAL lnSuccess
LOCAL loRsa
LOCAL loPrivKey
LOCAL loPubKey
LOCAL lcCcNumber
LOCAL lnUsePrivateKey
LOCAL lcEncryptedStr
LOCAL loRsaDecryptor
LOCAL lcDecryptedStr
lnSuccess = 0
* This example assumes the Chilkat API to have been previously unlocked.
* See Global Unlock Sample for sample code.
loRsa = CreateObject('Chilkat.Rsa')
loPrivKey = CreateObject('Chilkat.PrivateKey')
* Load an RSA private key from a file:
lnSuccess = loPrivKey.LoadAnyFormatFile("rsaPrivateKey.key","")
IF (lnSuccess = 0) THEN
? loPrivKey.LastErrorText
RELEASE loRsa
RELEASE loPrivKey
CANCEL
ENDIF
* Get the public part of the private key.
loPubKey = CreateObject('Chilkat.PublicKey')
loPrivKey.ToPublicKey(loPubKey)
lnSuccess = loRsa.UsePublicKey(loPubKey)
IF (lnSuccess = 0) THEN
? loRsa.LastErrorText
RELEASE loRsa
RELEASE loPrivKey
RELEASE loPubKey
CANCEL
ENDIF
* Encrypt a VISA credit card number:
* 1234-5678-0000-9999
lcCcNumber = "1234567800009999"
lnUsePrivateKey = 0
loRsa.EncodingMode = "base64"
lcEncryptedStr = loRsa.EncryptStringENC(lcCcNumber,lnUsePrivateKey)
? "Encrypted:"
? lcEncryptedStr
* Now decrypt:
loRsaDecryptor = CreateObject('Chilkat.Rsa')
loRsaDecryptor.EncodingMode = "base64"
loRsaDecryptor.UsePrivateKey(loPrivKey)
lnUsePrivateKey = 1
lcDecryptedStr = loRsaDecryptor.DecryptStringENC(lcEncryptedStr,lnUsePrivateKey)
? "Decrypted:"
? lcDecryptedStr
* 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
RELEASE loRsa
RELEASE loPrivKey
RELEASE loPubKey
RELEASE loRsaDecryptor