Sample code for 30+ languages & platforms
PowerBuilder

Encrypting or Hashing Hex or Base64 Encoded Binary Data

This example demonstrates how to encrypt binary input data that is in an encoded string form, such as "hex" or "base64". The goal is to do the following:
  1. Decode the input to get the binary data to be hashed or encrypted.
  2. Hash or encrypt.
  3. Encode the result and return as a hex or base64 encoded string.
This can be accomplished by setting the Charset property equal to the encoding of the input string. Normally, the Charset property indicates the internal character encoding representation to be used before hashing/encrypting. When set to the names of values such as "hex" or "base64", it indicates that we don't actually have text data, but simply binary data that is to be decoded first, then hashed/encrypted, and then returned (possibly as an encoded string, as shown in this example).

Chilkat PowerBuilder Downloads

PowerBuilder
integer li_rc
oleobject loo_Crypt
string ls_SHexBinary
string ls_Hash
string ls_IvHex
string ls_KeyHex
string ls_EncStr
string ls_DecStr

// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.

loo_Crypt = create oleobject
li_rc = loo_Crypt.ConnectToNewObject("Chilkat.Crypt2")
if li_rc < 0 then
    destroy loo_Crypt
    MessageBox("Error","Connecting to COM object failed")
    return
end if

ls_SHexBinary = "9D4203A3FF07791A1CD7FB0075D179E14E8B9DBEBFDE24F6D04613B8397B328E"

// The input is hex-encoded binary data, so set the Charset property = "hex"
// The Charset can also be "base64".
loo_Crypt.Charset = "hex"
// The output will be encoded to hex also.
loo_Crypt.EncodingMode = "hex"

loo_Crypt.HashAlgorithm = "ripemd160"
ls_Hash = loo_Crypt.HashStringENC(ls_SHexBinary)
Write-Debug "RIPEMD160: " + ls_Hash

// Important: This example requires Chilkat v9.5.0.49 or greater to work correctly.

// The same can be accomplished w/ encryption:	
loo_Crypt.CryptAlgorithm = "aes"
loo_Crypt.CipherMode = "cbc"
loo_Crypt.KeyLength = 256
loo_Crypt.PaddingScheme = 0

loo_Crypt.Charset = "hex"
loo_Crypt.EncodingMode = "hex"

ls_IvHex = "000102030405060708090A0B0C0D0E0F"
loo_Crypt.SetEncodedIV(ls_IvHex,"hex")

ls_KeyHex = "000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F"
loo_Crypt.SetEncodedKey(ls_KeyHex,"hex")

ls_EncStr = loo_Crypt.EncryptStringENC(ls_SHexBinary)
Write-Debug ls_EncStr

// Important: This example requires Chilkat v9.5.0.49 or greater to work correctly.
ls_DecStr = loo_Crypt.DecryptStringENC(ls_EncStr)
Write-Debug ls_DecStr


destroy loo_Crypt