Histórico da Página
...
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 plain text" //Local cPassword := "passwordde entrada>" Local cKeyInput := "1234567890123456" // NÃO USAR: APENAS PARA EXEMPLO!!!<Key a ser usada na encriptação e na decriptação, gerada previamente>" Local cIVInput := "6543210987654321" // NÃO USAR: APENAS PARA EXEMPLO!!!<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_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