Hashing in solidity | Divyansh Rai

Shared on Blockchain

editor-img
Divyansh Rai
Oct 26, 2022
shared in

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.

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.

// pragma versionpragma solidity ^0.6.6;// Creating a contractcontract helloGeeks{ // We want hash to be of 8 digits // hence we store 10^8 which is // used to extract first 8 digits // later by Modulus uint hashDigits = 8; // Equivalent to 10^8 = 8 uint hashModulus = 10 ** hashDigits; // Function to generate the hash value function _generateRandom(string memory _str) public view returns (uint) { // "packing" the string into bytes and // then applying the hash function. // This is then typecasted into uint. uint random = uint(keccak256(abi.encodePacked(_str))); // Returning the generated hash value return random % hashModulus; }}

Checkout related posts on: