Solidity

uint(keccak256(_str)); 的返回值是多少?

  • January 28, 2022

我正在學習加密殭屍課程的第 1 章。

       uint id = zombies.push(Zombie(_name, _dna)) - 1;
       NewZombie(id, _name, _dna);
   }

   function _generateRandomDna(string _str) private view returns (uint) {
       uint rand = uint(keccak256(_str));
       return rand % dnaModulus;
   }

this 的返回應該是 16 個數字。例如“8356281049284737”。但是對於return rand % dnaModulus;. 但我不知道什麼是回報uint(keccak256(_str))

Keccak256 是乙太坊中使用的 EVM 雜湊函式。它與 SHA3-256 非常相似。您還可以使用 Web3js、ethers.js 等工具在 EVM 之外使用此散列函式,或者在此處線上嘗試。在 Solidity 中,呼叫將返回 bytes32 形式的雜湊,然後可以通過將其轉換為 uint256 輕鬆地將其轉換為數字。

引用自:https://ethereum.stackexchange.com/questions/120181