What is Hashing in Solidity?
A cryptographic hash function is an algorithm that takes an arbitrary amount of data as input and produces the enciphered text of fixed size. Even a slight change in the input gives a completely different output.
Solidity provides the following cryptographic functions:
Function
|
Properties
|
keccak256(bytes memory) returns (bytes32) |
Computes the Keccak-256 hash of the input |
sha256(bytes memory) returns (bytes32) |
Computes the SHA-256 hash of the input |
ripemd160(bytes memory) returns (bytes20) |
Compute RIPEMD-160 hash of the input |
sha256(bytes memory) returns (bytes32) |
Computes the SHA-256 hash of the input |
ecrecover(bytes32 hash, uint8 v, bytes32 r, bytes32 s) returns (address) |
Recover the address associated with the public key from Elliptic curve signature used for cryptography or return Zero if an error occurs. The parameters correspond to ECDSA Signature values. |
Ethereum uses Keccak for hashing which is similar but not the same as SHA_256. For proof of work, it uses a custom scheme called ethash which is designed to be ASIC-resistant.
Example: In the below example, a smart contract is created to take a string as input and give an 8 digit hash as an output.
Solidity
pragma solidity ^0.6.6;
contract helloGeeks
{
uint hashDigits = 8;
uint hashModulus = 10 ** hashDigits;
function _generateRandom(string memory _str)
public view returns (uint)
{
uint random =
uint(keccak256(abi.encodePacked(_str)));
return random % hashModulus;
}
}
|
Input:
GeeksForGeeks
Output:
Reference: https://solidity.readthedocs.io/en/v0.7.1/
Last Updated :
11 May, 2022
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...