Solidità - Funzioni crittografiche

Solidity fornisce anche funzioni crittografiche integrate. Di seguito sono riportati metodi importanti:

  • keccak256(bytes memory) returns (bytes32) - calcola l'hash Keccak-256 dell'input.

  • sha256(bytes memory) returns (bytes32) - calcola l'hash SHA-256 dell'input.

  • ripemd160(bytes memory) returns (bytes20) - calcola l'hash RIPEMD-160 dell'input.

  • sha256(bytes memory) returns (bytes32) - calcola l'hash SHA-256 dell'input.

  • ecrecover(bytes32 hash, uint8 v, bytes32 r, bytes32 s) returns (address)- recuperare l'indirizzo associato alla chiave pubblica dalla firma della curva ellittica o restituire zero in caso di errore. I parametri della funzione corrispondono ai valori ECDSA della firma: r - primi 32 byte della firma; s: secondi 32 byte di firma; v: 1 byte finale di firma. Questo metodo restituisce un indirizzo.

L'esempio seguente mostra l'utilizzo della funzione crittografica in Solidity.

Esempio

pragma solidity ^0.5.0;

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

Eseguire il programma precedente utilizzando i passaggi forniti nel capitolo Solidity First Application .

Produzione

0: bytes32: result 0xe1629b9dda060bb30c7908346f6af189c16773fa148d3366701fbaa35d54f3c8