Chilkat HOME Android™ Classic ASP C C++ C# Mono C# .NET Core C# C# UWP/WinRT DataFlex Delphi ActiveX Delphi DLL Visual FoxPro Java Lianja MFC Objective-C Perl PHP ActiveX PHP Extension PowerBuilder PowerShell PureBasic CkPython Chilkat2-Python Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ Visual Basic 6.0 VB.NET VB.NET UWP/WinRT VBScript Xojo Plugin Node.js Excel Go
(Excel) RSA Encrypt and Decrypt Credit Card NumbersExcel 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.)
' This example assumes the Chilkat API to have been previously unlocked. ' See Global Unlock Sample for sample code. Dim rsa As Chilkat.Rsa Set rsa = Chilkat.NewRsa Dim key As Chilkat.PrivateKey Set key = Chilkat.NewPrivateKey ' Load an RSA private key from a PKCS8 file: success = key.LoadPkcs8File("rsaPrivateKey.p8") If (success <> True) Then Debug.Print key.LastErrorText Exit Sub End If ' Get the key as XML: keyXml = key.GetXml() ' We'll encrypt with the public key and decrypt with the private ' key. (It's also possible to do the reverse.) ' Note: An RSA private key is composed of different parts internally: modulus, exponent, P, Q, etc. ' An RSA public-key is a sub-set of the private key. ' Therefore, when you have a private key, you really have ' both public and private keys. success = rsa.ImportPublicKey(keyXml) If (success <> True) Then Debug.Print rsa.LastErrorText Exit Sub End If ' Encrypt a VISA credit card number: ' 1234-5678-0000-9999 ccNumber = "1234567800009999" usePrivateKey = False rsa.EncodingMode = "base64" encryptedStr = rsa.EncryptStringENC(ccNumber,usePrivateKey) Debug.Print "Encrypted:" Debug.Print encryptedStr ' Now decrypt: Dim rsaDecryptor As Chilkat.Rsa Set rsaDecryptor = Chilkat.NewRsa rsaDecryptor.EncodingMode = "base64" success = rsaDecryptor.ImportPrivateKey(keyXml) usePrivateKey = True decryptedStr = rsaDecryptor.DecryptStringENC(encryptedStr,usePrivateKey) Debug.Print "Decrypted:" Debug.Print decryptedStr ' 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 |
© 2000-2022 Chilkat Software, Inc. All Rights Reserved.