Ruby Examples

ChilkatHOMEASPVisual BasicVB.NETC#Visual C++CMFCDelphiFoxProJavaPerlPHPPythonRubySQL ServerVBScript

Ruby
Examples

Quick Start
Ruby Unicode
Ruby Byte Array
Ruby Certs
Ruby Email
Ruby Encryption
Ruby FTP
HTML-to-XML
Ruby HTTP
Ruby IMAP
Ruby MHT
Ruby MIME
Ruby S/MIME
Ruby Signatures
Ruby RSA
Ruby Socket
Ruby Spider
Ruby Tar
Ruby Upload
Ruby XML
Ruby XMP
Ruby Zip

More Examples...
String
Email Object
POP3
SMTP
RSS
Atom
Self-Extractor
Service
PPMD
Deflate
Bzip2
DH Key Exchange
DSA
SSH Key
SSH
SSH Tunnel
SFTP

Unreleased...
LZW
Bz2
Icon

 

 

 

 

 

 

 

3DES Encryption, ECB, CBC modes

3DES encryption. The Chilkat encryption component supports Triple-DES in both ECB (Electronic Cookbook) and CBC (Cipher-Block Chaining) cipher modes.

Download Chilkat Ruby Library

require 'chilkat'

crypt = Chilkat::CkCrypt2.new()

success = crypt.UnlockComponent("Anything for 30-day trial")
if (success != true)
    print "Crypt component unlock failed" + "\n"
    exit
end

#  Specify 3DES for the encryption algorithm:
crypt.put_CryptAlgorithm("3des")

#  CipherMode may be "ecb" or "cbc"
crypt.put_CipherMode("cbc")

#  KeyLength must be 192.  3DES is technically 168-bits;
#  the most-significant bit of each key byte is a parity bit,
#  so we must indicate a KeyLength of 192, which includes
#  the parity bits.
crypt.put_KeyLength(192)

#  The padding scheme determines the contents of the bytes
#  that are added to pad the result to a multiple of the
#  encryption algorithm's block size.  3DES has a block
#  size of 8 bytes, so encrypted output is always
#  a multiple of 8.
crypt.put_PaddingScheme(0)

#  EncodingMode specifies the encoding of the output for
#  encryption, and the input for decryption.
#  It may be "hex", "url", "base64", or "quoted-printable".
crypt.put_EncodingMode("hex")

#  An initialization vector is required if using CBC or CFB modes.
#  ECB mode does not use an IV.
#  The length of the IV is equal to the algorithm's block size.
#  It is NOT equal to the length of the key.
ivHex = "0001020304050607"
crypt.SetEncodedIV(ivHex,"hex")

#  The secret key must equal the size of the key.  For
#  3DES, the key must be 24 bytes (i.e. 192-bits).
keyHex = "000102030405060708090A0B0C0D0E0F0001020304050607"
crypt.SetEncodedKey(keyHex,"hex")

#  Encrypt a string...
#  The input string is 44 ANSI characters (i.e. 44 bytes), so
#  the output should be 48 bytes (a multiple of 8).
#  Because the output is a hex string, it should
#  be 96 characters long (2 chars per byte).
encStr = crypt.encryptStringENC("The quick brown fox jumps over the lazy dog.")
print encStr + "\n"

#  Now decrypt:
decStr = crypt.decryptStringENC(encStr)
print decStr + "\n"
 

Need a specific example? Send a request to support@chilkatsoft.com

© 2000-2008 Chilkat Software, Inc. All Rights Reserved.