Solidność - funkcje kryptograficzne

Solidity zapewnia również wbudowane funkcje kryptograficzne. Oto ważne metody -

  • keccak256(bytes memory) returns (bytes32) - oblicza hash Keccak-256 wejścia.

  • sha256(bytes memory) returns (bytes32) - oblicza hash SHA-256 wejścia.

  • ripemd160(bytes memory) returns (bytes20) - oblicz skrót RIPEMD-160 wejścia.

  • sha256(bytes memory) returns (bytes32) - oblicza hash SHA-256 wejścia.

  • ecrecover(bytes32 hash, uint8 v, bytes32 r, bytes32 s) returns (address)- odzyskać adres powiązany z kluczem publicznym z sygnatury krzywej eliptycznej lub zwrócić zero w przypadku błędu. Parametry funkcji odpowiadają wartościom podpisu ECDSA: r - pierwsze 32 bajty podpisu; s: drugie 32 bajty podpisu; v: ostatni 1 bajt podpisu. Ta metoda zwraca adres.

Poniższy przykład pokazuje użycie funkcji kryptograficznej w Solidity.

Przykład

pragma solidity ^0.5.0;

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

Uruchom powyższy program, wykonując kroki opisane w rozdziale Solidity First Application .

Wynik

0: bytes32: result 0xe1629b9dda060bb30c7908346f6af189c16773fa148d3366701fbaa35d54f3c8