Cryptographic global variables
Solidity provides cryptographic functions for hashing values within contract functions. There are two hashing functions – SHA2 and SHA3.
The sha3 or keccak256 function converts the input into a hash based on the sha3 algorithm, while sha256 converts the input into a hash based on the sha2 algorithm. It is recommended to use the keccak256 function for hashing needs.
The following code block illustrates this:
pragma solidity >=0.7.0 <0.9.0; contract CryptoFunctions { function CryptoDemo() pure public returns (bytes32, bytes32){ return (sha256("r"), keccak256("r")); } }
The result of executing this function is shown in the following screenshot. The result of both the keccak256
and sha3
functions is the same: