Ruby Examples

ChilkatHOMEASPVisual BasicVB.NETC#Visual C++CMFCDelphiFoxProJavaPerlPHPPythonRubySQL ServerVBScript

Ruby
Examples

Quick Start
Unicode
Byte Array
Bz2
Certificates
CSV
Email
Encryption
FTP
HTML-to-XML
HTTP
IMAP
MHT
MIME
POP3
RSA
S/MIME
Signatures
SFTP
SMTP
Socket / SSL
Spider
SSH
SSH Key
SSH Tunnel
Tar
HTTP Upload
XML
XMP
Zip

More Examples...
String
Email Object
FileAccess
RSS
Atom
Self-Extractor
Service
PPMD
Deflate
Bzip2
DH Key Exchange
DSA

Unreleased...
LZW
Icon

 

 

 

 

 

 

 

ASCII / ANSI Secret Key in Symmetric Encryption

Using an ASCII (or ANSI) secret key w/ symmetric encryption: AES, Blowfish, Twofish, RC2, 3DES, etc.

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

#  A frequent support question goes something like this:
#  ------------------
#  I am not able to decrypt strings encrypted using
#  cryptix.jce.provider.key.RawSecretKey (Java) like I would normally do.

# The key generation is being done with the Rijndael algorithm (256-bit)
#  The AES encryption algorithm is "Rijndael/ECB/PKCS#5"

#  The 32 character source key I'm using is this:
#  1234567890123456789012345678912
# 
#  ------------------
#  The customer tries to call GenerateSecretKey to
#  convert the 32-character source key to a binary secret key,
#  but this is incorrect (in this case).  GenerateSecretKey
#  hashes a string of any length and produces binary hash output
#  that is of the appropriate size to be used as a secret key.

#  The telltale sign is that in this case, the string is the exact
#  length of the secret key.  32 ANSI characters = 256 bits.
#  Therefore, it is obvious that the bytes of the binary
#  secret key should be the exact ascii character values
#  of the string.

encKey = "1234567890123456789012345678912"

crypt.put_CryptAlgorithm("aes")
#  Mode is "ecb" or "cbc"
crypt.put_CipherMode("ecb")
crypt.put_KeyLength(256)

#  Call SetEncodedKey with "ascii" to tell the component
#  to use the ascii-bytes as the binary secret key.
#  Make sure you call this after setting the KeyLength.
crypt.SetEncodedKey(encKey,"ascii")

crypt.put_EncodingMode("base64")
text = "The quick brown fox jumped over the lazy dog."

#  Encrypt a string and return the binary encrypted data
#  in a base-64 encoded string.
encText = crypt.encryptStringENC(text)

print encText + "\n";

#  Decrypt and show the original string:
decryptedText = crypt.decryptStringENC(encText)

print decryptedText + "\n";
 

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

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