Histórico da Página
...
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. |
...
Informações | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
...
Exemplo 1: criptografia AES-128 CBC usando key gerada a partir do password fornecido e IV gerado randômico:
Bloco de código language cpp theme Eclipse linenumbers true collapse false User Function ExeAES1() Local nCipherID := 0 // AES-128 CBC Local cPlainText := "input plain text" Local cPassword := "password" //Local cKeyInput := "1234567890123456" // NÃO USAR: APENAS PARA EXEMPLO!!! //Local cIVInput := "6543210987654321" // NÃO USAR: APENAS PARA EXEMPLO!!! 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_ascii_com_32_bytes>] // AESEncrypt[3] -> C ( 16) [<texto_ascii_com_16_bytes>] // AESEncrypt[4] -> C ( 16) [<texto_ascii_com_16_bytes>] 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) [input plain text] Return
Exemplo 2: criptografia AES-128 CBC usando key fornecida e IV fornecido:
Bloco de código language cpp theme Eclipse linenumbers true collapse false User Function ExeAES2() Local nCipherID := 0 // AES-128 CBC Local cPlainText := "input plain text" //Local cPassword := "password" Local cKeyInput := "1234567890123456" // NÃO USAR: APENAS PARA EXEMPLO!!! Local cIVInput := "6543210987654321" // NÃO USAR: APENAS PARA EXEMPLO!!! 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_ascii_com_32_bytes>] // AESEncrypt[3] -> C ( 16) [1234567890123456] // AESEncrypt[4] -> C ( 16) [6543210987654321] 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) [input plain text] Return
Abrangência
AppServer 17.3.0.15 http://tdn.totvs.com.br/display/tec/AESEncrypt