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