PureBasic
PureBasic
PBES2 Password-Based Encryption
See more Encryption Examples
Demonstrates PBES2 encryptionChilkat PureBasic Downloads
IncludeFile "CkCrypt2.pb"
Procedure ChilkatExample()
; This example assumes the Chilkat API to have been previously unlocked.
; See Global Unlock Sample for sample code.
crypt.i = CkCrypt2::ckCreate()
If crypt.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
; Set properties for PBES2 encryption:
; When the encryption algorithm is set to "pbes2",
; Chilkat will automatically derive the actual secret key using PBKDF2 and
; the specified paramters: password, salt, iteration count, hash function, and desired key length.
CkCrypt2::setCkCryptAlgorithm(crypt, "pbes2")
CkCrypt2::setCkPbesPassword(crypt, "mySecretPassword")
; Set the underlying PBE algorithm (and key length):
CkCrypt2::setCkPbesAlgorithm(crypt, "aes")
CkCrypt2::setCkKeyLength(crypt, 256)
CkCrypt2::ckSetEncodedIV(crypt,"000102030405060708090A0B0C0D0E0F","hex")
; Give it some salt:
CkCrypt2::ckSetEncodedSalt(crypt,"0102030405060708","hex")
; A higher iteration count makes the algorithm more
; computationally expensive and therefore exhaustive
; searches (for breaking the encryption) is more difficult:
CkCrypt2::setCkIterationCount(crypt, 1024)
; A hash algorithm needs to be set for PBES2:
CkCrypt2::setCkHashAlgorithm(crypt, "sha256")
; Indicate that the encrypted bytes should be returned
; as a hex string:
CkCrypt2::setCkEncodingMode(crypt, "hex")
plainText.s = "To be encrypted."
encryptedText.s = CkCrypt2::ckEncryptStringENC(crypt,plainText)
Debug encryptedText
; Now decrypt:
decryptedText.s = CkCrypt2::ckDecryptStringENC(crypt,encryptedText)
Debug decryptedText
CkCrypt2::ckDispose(crypt)
ProcedureReturn
EndProcedure