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

Unreleased...
LZW
Bz2
Icon

 

 

 

 

 

 

 

ARC4 Encryption (ARCFOUR)

Demonstrates simple ARC4 encryption to match some simple test vectors published by Wikipedia. ARC4 is a fast stream cipher supporting key lengths from 8 to 2048 bits (i.e. from 1 to 256 bytes). It is not a block cipher, so there is no padding, no modes, and no initialization vector.

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

#  Set the encryption algorithm to ARC4:
crypt.put_CryptAlgorithm("arc4")

#  We want the encrypted output to be a hex-encoded string.
crypt.put_EncodingMode("hex")

#  Encrypt some test vectors from Wikipedia:

#  The key length (in bits) is equal to the number of us-ascii
#  bytes in our key string * 8.

# ARC4( "Key", "Plaintext" ) == BBF316E8D940AF0AD3
crypt.put_KeyLength(24)
crypt.SetEncodedKey("Key","ascii")
cipherText = crypt.encryptStringENC("Plaintext")
print cipherText + "\n";
plainText = crypt.decryptStringENC(cipherText)
print plainText + "\n";

# ARC4( "Wiki", "pedia" ) == 1021BF0420
crypt.put_KeyLength(32)
crypt.SetEncodedKey("Wiki","ascii")
cipherText = crypt.encryptStringENC("pedia")
print cipherText + "\n";
plainText = crypt.decryptStringENC(cipherText)
print plainText + "\n";

# ARC4( "Secret", "Attack at dawn" ) == 45A01F645FC35B383552544B9BF5
crypt.put_KeyLength(48)
crypt.SetEncodedKey("Secret","ascii")
cipherText = crypt.encryptStringENC("Attack at dawn")
print cipherText + "\n";
plainText = crypt.decryptStringENC(cipherText)
print plainText + "\n";

#  Note: The call to SetEncodedKey serves to set the key
#  to the us-ascii bytes of the string.

 

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

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