Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
ASCII / ANSI Secret Key in Symmetric Encryption
Using an ASCII (or ANSI) secret key w/ symmetric encryption: AES, Blowfish, Twofish, RC2, 3DES, etc. <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> </head> <body> <% set crypt = Server.CreateObject("Chilkat_9_5_0.Crypt2") success = crypt.UnlockComponent("Anything for 30-day trial") If (success <> 1) Then Response.Write "Crypt component unlock failed" & "<br>" End If ' 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.CryptAlgorithm = "aes" ' Mode is "ecb" or "cbc" crypt.CipherMode = "ecb" crypt.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.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) Response.Write encText & "<br>" ' Decrypt and show the original string: decryptedText = crypt.DecryptStringENC(encText) Response.Write decryptedText & "<br>" %> </body> </html> |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.