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 EncryptionDownloads: MS Windows Visual C/C++ Libraries Linux/CentOS C/C++ Libraries MAC OS X C/C++ Libraries Solaris C/C++ Libraries C++ Builder Libraries Using an ASCII (or ANSI) secret key w/ symmetric encryption: AES, Blowfish, Twofish, RC2, 3DES, etc. Downloads: MS Windows Visual C/C++ Libraries Linux/CentOS C/C++ Libraries MAC OS X C/C++ Libraries Solaris C/C++ Libraries C++ Builder Libraries #include <CkCrypt2.h> #include <CkString.h> void ChilkatSample(void) { CkCrypt2 crypt; bool success; success = crypt.UnlockComponent("Anything for 30-day trial"); if (success != true) { printf("Crypt component unlock failed\n"); return; } // 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. CkString encKey; 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"); CkString text; 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. CkString encText; encText = crypt.encryptStringENC(text); printf("%s\n",(const char *)encText); // Decrypt and show the original string: CkString decryptedText; decryptedText = crypt.decryptStringENC(encText); printf("%s\n",(const char *)decryptedText); } |
© 2000-2010 Chilkat Software, Inc. All Rights Reserved.