Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

  • Exemplo 1: criptografia AES-128 CBC usando key gerada a partir do password fornecido e IV gerado randômico:

    Bloco de código
    languagecpp
    themeEclipse
    linenumberstrue
    collapsefalse
    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:

    Bloco de código
    languagecpp
    themeEclipse
    linenumberstrue
    collapsefalse
    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
    

Abrangência

Disponível no AppServer a partir da build 17.3.0.1615

Veja também