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<Texto plainde textentrada>" Local cPassword := "password" //Local cKeyInput := "1234567890123456" // NÃO USAR: APENAS PARA EXEMPLO!!! //Local cIVInput := "6543210987654321" // NÃO USAR: APENAS PARA EXEMPLO!!!<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_ascii_com_32_bytes><Texto de saída da encriptação>] // AESEncrypt[3] -> C ( 16) [<texto_ascii_com_16_bytes><Key usada na encriptação, derivada a partir do password pela função de encriptação>] // AESEncrypt[4] -> C ( 16) [<texto_ascii_com_16_bytes><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) [input plain text<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:
Bloco de código language cpp theme Eclipse linenumbers true collapse false User Function ExeAES2() Local nCipherID := 0 // AES-128 CBC Local cPlainText := "input<Texto plainde textentrada>" //Local cPassword := "password" Local cKeyInput := "1234567890123456"<Key a // NÃO USAR: APENAS PARA EXEMPLO!!!ser usada na encriptação e na decriptação, gerada previamente>" Local cIVInput := "6543210987654321"<IV a ser usado // NÃO USAR: APENAS PARA EXEMPLO!!!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_ascii_com_32_bytes><Texto de saída da encriptação>] // AESEncrypt[3] -> C ( 16) [1234567890123456<Key usada na encriptação, gerada previamente>] // AESEncrypt[4] -> C ( 16) [6543210987654321<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) [input plain text<Texto de saída da decriptação, idêntico ao texto de entrada>] Return
Abrangência
Disponível no AppServer a partir da build 17.3.0.15 http://tdn.totvs.com.br/display/tec/AESEncrypt