Chilkat
HOME
Android™
ASP
Visual Basic
VB.NET
C#
iOS (IPhone)
Objective-C
C++
C
MFC
Delphi
FoxPro
Java
Perl
PHP Extension
PHP ActiveX
Python
PowerShell
Ruby
SQL Server
VBScript
ASCII / ANSI Secret Key in Symmetric EncryptionUsing an ASCII (or ANSI) secret key w/ symmetric encryption: AES, Blowfish, Twofish, RC2, 3DES, etc. Downloads for Windows/Linux and Install Instructions require 'rubygems' 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"; |
© 2000-2010 Chilkat Software, Inc. All Rights Reserved.