Solidity - funções criptográficas

O Solidity também oferece funções criptográficas integradas. A seguir estão métodos importantes -

  • keccak256(bytes memory) returns (bytes32) - calcula o hash Keccak-256 da entrada.

  • sha256(bytes memory) returns (bytes32) - calcula o hash SHA-256 da entrada.

  • ripemd160(bytes memory) returns (bytes20) - calcula o hash RIPEMD-160 da entrada.

  • sha256(bytes memory) returns (bytes32) - calcula o hash SHA-256 da entrada.

  • ecrecover(bytes32 hash, uint8 v, bytes32 r, bytes32 s) returns (address)- recupera o endereço associado à chave pública da assinatura da curva elíptica ou retorna zero em caso de erro. Os parâmetros da função correspondem aos valores ECDSA da assinatura: r - primeiros 32 bytes da assinatura; s: segundos 32 bytes de assinatura; v: 1 byte final de assinatura. Este método retorna um endereço.

O exemplo a seguir mostra o uso da função criptográfica no Solidity.

Exemplo

pragma solidity ^0.5.0;

contract Test {   
   function callKeccak256() public pure returns(bytes32 result){
      return keccak256("ABC");
   }  
}

Execute o programa acima usando as etapas fornecidas no capítulo Aplicativo Solidity First .

Resultado

0: bytes32: result 0xe1629b9dda060bb30c7908346f6af189c16773fa148d3366701fbaa35d54f3c8