Sample code for 30+ languages & platforms
PureBasic

PBKDF2 Key Derivation

Demonstrates AES secret key derivation from a password using PBDKF2.

Chilkat PureBasic Downloads

PureBasic
IncludeFile "CkCrypt2.pb"

Procedure ChilkatExample()

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

    crypt.i = CkCrypt2::ckCreate()
    If crypt.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    password.s = "correcthorsebatterystaple"

    ; Derive from the utf-8 byte representation of the password.
    charset.s = "utf-8"

    hashAlg.s = "sha256"

    CkCrypt2::setCkEncodingMode(crypt, "hex")
    saltHex.s = CkCrypt2::ckGenRandomBytesENC(crypt,16)

    iterationCount.i = 310000

    ; Derive a 256-bit key from the password.
    outputBitLen.i = 256

    ; The derived key is returned as a hex or base64 encoded string.
    ; (Note: The salt argument must be a string that also uses
    ; the same encoding.)
    enc.s = "hex"

    hexKey.s = CkCrypt2::ckPbkdf2(crypt,password,charset,hashAlg,saltHex,iterationCount,outputBitLen,enc)

    Debug hexKey

    ; Sample output:
    ; 597734C894FF89CFD3B93D925462C24E97724BCB118F6FC919007F5ABC27E768


    CkCrypt2::ckDispose(crypt)


    ProcedureReturn
EndProcedure