Creates a key from algorithm and password
#include <Crypt.au3>
_Crypt_DeriveKey ( $vPassword, $iAlgID [, $iHashPasswordID = $CALG_MD5] )
$vPassword | Password to use |
$iAlgID | Encryption ID of algorithm to be used with the key. See remarks. |
$iHashPasswordID | [optional] Id of the algo to hash the password with. See remarks. |
Success: | a handle to a cryptographic key. |
Failure: | sets the @error flag to non-zero. |
@error: | 10+ - Failed to create hash object 20+ - Failed to hash password 30+ - Failed to generate key 1000+ - Failed to _Crypt_Startup() |
The key needs to be destroyed with _Crypt_DestroyKey().
Encryption Algorithm ID
$iAlgID | Value | Type | Key-length |
---|---|---|---|
$CALG_AES_128 | 0x0000660e | Cipher block chaining | 128 bits |
$CALG_AES_192 | 0x0000660f | Cipher block chaining | 192 bits |
$CALG_AES_256 | 0x00006610 | Cipher block chaining | 256 bits |
$CALG_DES | 0x00006601 | Cipher block chaining | 56 bits |
$CALG_3DES | 0x00006603 | Cipher block chaining | 168 bits |
$CALG_RC2 | 0x00006602 | Block encryption algorithm | 128 bits |
$CALG_RC4 | 0x00006801 | Stream encryption algorithm | 128 bits |
$CALG_USERKEY | 0 |
$iHashPasswordID | Value | Type | Key-length |
---|---|---|---|
$CALG_MD2 | 0x00008001 | Hashing algorithm | 128-bit |
$CALG_MD4 | 0x00008002 | Hashing algorithm | 128-bit |
$CALG_MD5 | 0x00008003 | Hashing algorithm | 128-bit |
$CALG_SHA1 | 0x00008004 | Hashing algorithm | 160-bit |
$CALG_SHA_256 | 0x0000800c | Hashing algorithm | 256-bit |
$CALG_SHA_384 | 0x0000800d | Hashing algorithm | 384-bit |
$CALG_SHA_512 | 0x0000800e | Hashing algorithm | 512-bit |
_Crypt_DecryptData, _Crypt_DecryptFile, _Crypt_DestroyKey, _Crypt_EncryptData, _Crypt_EncryptFile
Search CryptDeriveKey in MSDN Library.
#include <Crypt.au3>
#include <MsgBoxConstants.au3>
Example()
Func Example()
Local $aStringsToEncrypt[6] = ["AutoIt", "SciTE", "Crypt", ".au3", 42, "42"]
Local $sOutput = ""
Local $hKey = _Crypt_DeriveKey("CryptPassword", $CALG_RC4) ; Declare a password string and algorithm to create a cryptographic key.
For $vText In $aStringsToEncrypt
$sOutput &= $vText & @TAB & " = " & _Crypt_EncryptData($vText, $hKey, $CALG_USERKEY) & @CRLF ; Encrypt the text with the cryptographic key.
Next
MsgBox($MB_SYSTEMMODAL, "Encrypted data", $sOutput)
_Crypt_DestroyKey($hKey) ; Destroy the cryptographic key.
EndFunc ;==>Example