import.css=/download/attachments/6062824/tecnologia.css |
Encripta textos usando o algoritmo AES no modo definido.
AESEncrypt( < nCipherID >, < cPlainText >, [ cPassword ], [ cKey ], [ cIV ] ) |
Nome | Tipo | Descrição | Obrigatório | Referência |
|---|---|---|---|---|
nCipherID | numérico | Código identificador do modo do algoritmo AES a ser usado na encriptação. | X | |
cPlainText | caractere | Texto de entrada a ser encriptado. | X | |
cPassword | caractere | Texto auxiliar na geração da key da encriptação. | ||
cKey | caractere | Key da encriptação, conforme o modo do algoritmo AES a ser usado. | ||
cIV | caractere | IV (Vetor de Inicialização) da encriptação, conforme o modo do algoritmo AES a ser usado. |
Nome | Tipo | Descrição |
|---|---|---|
aResEnc | vetor | Array com o resultado do processo de encriptação. |
|
Exemplo 1: criptografia AES-128 CBC usando key gerada a partir do password fornecido e IV gerado randômico:
User Function ExeAES1()
Local nCipherID := 0 // AES-128 CBC
Local cPlainText := "<Texto de entrada>"
Local cPassword := "<Texto auxiliar na geração da key da encriptação>"
Local cKeyUsed := ""
Local cIVUsed := ""
Local cCipherText := ""
Local aResEnc := {}
Local aResDec := {}
aResEnc := AESEncrypt( nCipherID, cPlainText, cPassword )
VarInfo( "AESEncrypt", aResEnc )
// AESEncrypt -> ARRAY ( 4) [...]
// AESEncrypt[1] -> N ( 15) [ 0.0000]
// AESEncrypt[2] -> C ( 32) [<Texto de saída da encriptação>]
// AESEncrypt[3] -> C ( 16) [<Key usada na encriptação, derivada a partir do password pela função de encriptação>]
// AESEncrypt[4] -> C ( 16) [<IV usado na encriptação, gerado randomicamente pela função de encriptação>]
cCipherText := aResEnc[2]
cKeyUsed := aResEnc[3]
cIVUsed := aResEnc[4]
aResDec := AESDecrypt( nCipherID, cCipherText, cKeyUsed, cIVUsed )
VarInfo( "AESDecrypt", aResDec )
// AESDecrypt -> ARRAY ( 2) [...]
// AESDecrypt[1] -> N ( 15) [ 0.0000]
// AESDecrypt[2] -> C ( 16) [<Texto de saída da decriptação, idêntico ao texto de entrada>]
Return
|
Exemplo 2: criptografia AES-128 CBC usando key fornecida e IV fornecido:
User Function ExeAES2()
Local nCipherID := 0 // AES-128 CBC
Local cPlainText := "<Texto de entrada>"
Local cKeyInput := "<Key a ser usada na encriptação e na decriptação, gerada previamente>"
Local cIVInput := "<IV a ser usado na encriptação e na decriptação, gerado previamente>"
Local cKeyUsed := ""
Local cIVUsed := ""
Local cCipherText := ""
Local aResEnc := {}
Local aResDec := {}
aResEnc := AESEncrypt( nCipherID, cPlainText, , cKeyInput, cIVInput )
VarInfo( "AESEncrypt", aResEnc )
// AESEncrypt -> ARRAY ( 4) [...]
// AESEncrypt[1] -> N ( 15) [ 0.0000]
// AESEncrypt[2] -> C ( 32) [<Texto de saída da encriptação>]
// AESEncrypt[3] -> C ( 16) [<Key usada na encriptação, gerada previamente>]
// AESEncrypt[4] -> C ( 16) [<IV usado na encriptação, gerado previamente>]
cCipherText := aResEnc[2]
cKeyUsed := aResEnc[3]
cIVUsed := aResEnc[4]
aResDec := AESDecrypt( nCipherID, cCipherText, cKeyUsed, cIVUsed )
VarInfo( "AESDecrypt", aResDec )
// AESDecrypt -> ARRAY ( 2) [...]
// AESDecrypt[1] -> N ( 15) [ 0.0000]
// AESDecrypt[2] -> C ( 16) [<Texto de saída da decriptação, idêntico ao texto de entrada>]
Return
|
Disponível no AppServer a partir da build 17.3.0.15