A cryptographic hash function is an algorithm that accepts any amount of data and outputs a fixed size enciphered text. The tiniest alteration in the data causes an entire shift in the output.
Keccak256
?keccak256
is used to process the Keccak-256
hash of the data input and can be used for the following:
To create a deterministic, one-of-a-kind ID from a set of data.
Commit-reveal scheme
Cryptographic signature with a small size (by signing the hash instead of a larger input)
// pragma versionpragma solidity ^0.5.12;// Creating a contractcontract fellowCoders{uint hashDigits = 8;// Equivalent to 10^8 = 8uint hashModulus = 10 ** hashDigits;// Function to generate the hash valuefunction _generateRandom(string memory _str)public view returns (uint){uint random =uint(keccak256(abi.encodePacked(_str)));// Returning the generated hash valuereturn random % hashModulus;}}
Line 5: We create a contract
.
Line 11: We are using a 6 digit hash. So, we store 10^6
, which is used to extract the first 6 digits.
Line 14: We create a function to generate the hash value.
Lines 17: We pack the string into bytes and apply the hash function. Next, we typecast it into uint.
In line 21 We return the generated hash value.