Sample code for 30+ languages & platforms
Tcl

PBES2 Password-Based Encryption

See more Encryption Examples

Demonstrates PBES2 encryption

Chilkat Tcl Downloads

Tcl

load ./chilkat.dll

# This example assumes the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.

set crypt [new_CkCrypt2]

# 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_put_CryptAlgorithm $crypt "pbes2"
CkCrypt2_put_PbesPassword $crypt "mySecretPassword"

# Set the underlying PBE algorithm (and key length):
CkCrypt2_put_PbesAlgorithm $crypt "aes"
CkCrypt2_put_KeyLength $crypt 256

CkCrypt2_SetEncodedIV $crypt "000102030405060708090A0B0C0D0E0F" "hex"

# Give it some salt:
CkCrypt2_SetEncodedSalt $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_put_IterationCount $crypt 1024

# A hash algorithm needs to be set for PBES2:
CkCrypt2_put_HashAlgorithm $crypt "sha256"

# Indicate that the encrypted bytes should be returned
# as a hex string:
CkCrypt2_put_EncodingMode $crypt "hex"

set plainText "To be encrypted."

set encryptedText [CkCrypt2_encryptStringENC $crypt $plainText]

puts "$encryptedText"

# Now decrypt:
set decryptedText [CkCrypt2_decryptStringENC $crypt $encryptedText]

puts "$decryptedText"

delete_CkCrypt2 $crypt