Sample code for 30+ languages & platforms
Ruby

PBES2 Password-Based Encryption

See more Encryption Examples

Demonstrates PBES2 encryption

Chilkat Ruby Downloads

Ruby
require 'chilkat'

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

crypt = Chilkat::CkCrypt2.new()

# 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.

crypt.put_CryptAlgorithm("pbes2")
crypt.put_PbesPassword("mySecretPassword")

# Set the underlying PBE algorithm (and key length):
crypt.put_PbesAlgorithm("aes")
crypt.put_KeyLength(256)

crypt.SetEncodedIV("000102030405060708090A0B0C0D0E0F","hex")

# Give it some salt:
crypt.SetEncodedSalt("0102030405060708","hex")

# A higher iteration count makes the algorithm more
# computationally expensive and therefore exhaustive
# searches (for breaking the encryption) is more difficult:
crypt.put_IterationCount(1024)

# A hash algorithm needs to be set for PBES2:
crypt.put_HashAlgorithm("sha256")

# Indicate that the encrypted bytes should be returned
# as a hex string:
crypt.put_EncodingMode("hex")

plainText = "To be encrypted."

encryptedText = crypt.encryptStringENC(plainText)

print encryptedText + "\n";

# Now decrypt:
decryptedText = crypt.decryptStringENC(encryptedText)

print decryptedText + "\n";