Questions tagged [keccak]
keccak is a cryptographic family which is used in ethereum and nowerdays provides the standards for sha-3
124
questions
4
votes
2answers
983 views
How is the keccak256(a, b) function implemented?
I need to understand how keccak256(a, b) is implemented and how it differs from keccak256(a || b).
Is the content padded?
I need this because I do not want to allow for vulnerabilities where a user ...
1
vote
2answers
181 views
Common use cases for hashing functions? [closed]
I'm developing my first dapp with solidity and I was wondering in which cases should I use hashing functions like keccak. I know how they work but it is not clear to me when should I use them and to ...
1
vote
0answers
81 views
are all bits of a keccak256 'uniformly distributed'? [closed]
If I have a truly random data source, and generate keccak256 hashes of the numbers of this source:
N1 = keccak256(rnd1)
N2 = keccak256(rnd2)
N3 = keccak256(rnd3)
...
are all 256 bits of the ...
1
vote
1answer
365 views
Keccak256 collision in function’s prototype
I was reading the github version of the upcoming book Mastering Ethereum, where the author defines the function selector as The first 4 bytes of the Keccak256 hash of the function’s prototype. This ...
0
votes
1answer
252 views
How to get EVENT name from event signature hash?
I fount that some developers can get event_signature_hash for a event's name MyEvent(uint256) by using bellow code:
event_signature_hash = w3.sha3(text='MyEvent(uint256)').hex()
But vice versa, I ...
2
votes
1answer
1k views
bytes4(keccak256(“function(uint256)”)) vs. (abi.encodeWithSignature(“buyItem(uint256)”)
What is the (a) technical difference between and (b) practical difference between these, i.e., when do you use one or the other:
bool result = address(contract).call.value(10)(bytes4(keccak256("...
0
votes
1answer
1k views
How to typecast keccak256 function with multiple arguments to uint256?
solidity ^0.4.19 (works)
uint256 randNonce++;
return uint256(keccak256(msg.sender, randNonce, now))
solidity ^0.4.24 (throws)
uint256 randNonce++;
return uint256(keccak256(abi.encodePacked(msg....
-2
votes
1answer
455 views
Why does keccak256() return bytes32 instead of uint256 in Solidity?
A hashing function outputs an integer that is 256 bits long... so why not store it as such?
1
vote
1answer
1k views
From golang sha3 to solidity sha3
Trying to match "golang.org/x/crypto/sha3" lib
with solidity sha3() is giving me a hard time.
Its been discussed in here, but I somehow cant apply it in go.
How do I handle a big.Int type s.t i get ...
2
votes
2answers
189 views
Why public keys are not used directly as account addresses? [duplicate]
I understand that addresses are hashes of the public keys. But why? What is the rationale behind this design decision?
And why 160 bits? Why not just use the hash directly? Is 160-bit guaranteed ...
0
votes
0answers
19 views
How to use bytes to get the same hashed output [duplicate]
I previously asked a question here: link to previous question.
Found out the answer is to use string instead of bytes here:
pragma solidity ^0.4.18;
contract C {
bytes32 public temp;
...
0
votes
2answers
2k views
solidity ..which hashing algorithm to use?
I have tried using many hashing algorithms but there output in solidity doesn't match with the one given in online converters.
Here is my program:-
pragma solidity ^0.4.18;
contract C {
bytes32 ...
0
votes
1answer
292 views
Keccak256 of msg.sender and timestamp: what's the likelihood of an output coincidence?
Let's think about this code:
function publishEtherBox (bytes32 _label, string _ownerUrl, uint _lifespan) external onlyWhenRunning() payable {
require(ownerToEtherBoxes[msg.sender].length < ...
0
votes
1answer
447 views
Compare byte32 Keccak256 to the same Keccak256 stored in a byte32 array
I want my function to be able to accept an array of Hashed secrets as a parameter and since solidity doesn't allow for strings, I had to use a byte32[].
The string parameter is an intake for the user'...
3
votes
1answer
4k views
SOLIDITY: How to get a bytes32 keccak256 hash of an address and 2 uint256 variables
I would like to know how to get a bytes32 keccak256 hash of an address and 2 uint256 variables.
I want something that will look like this. But from the remix IDE errors, I need to make the the 3 ...
2
votes
1answer
93 views
Incorrect result for hash calculation
According to this link, [https://github.com/ethereum/EIPs/blob/master/EIPS/eip-155.md][1].
The "signing data" becomes:
...
6
votes
1answer
1k views
Compare structs and arrays with keccak256 in order to save gas
Just working on a solidity code last day, I figured out that apart of comparing bytes, strings etc...
The Keccak256 will be the perfect solution for comparing large arrays or big structs. Because as ...
4
votes
1answer
590 views
How to derive the storage key of mapping to an account?
I am trying to derive changes of account storage by mapping accounts (here, the accounts represent the key address in the ERC20 balances mapping mapping(address => uint256)) to their corresponding ...
1
vote
2answers
2k views
does keccak256 and sha3 reproduce the same hash ?
I have this solidity method:
function hashData(bytes32 data) public constant returns (bytes32) {
var hash = keccak256(data, msg.sender);
return hash;
}
for a data = "0x707974686f6e62" and ...
2
votes
2answers
744 views
Solidity: How to verify Keccak-256 value?
I want to pass a Keccak-256 hashed value from the front-end, say a string "experiment". I store the value in Solidity, and, when passing the same value for the second time, a Solidity function needs ...
1
vote
1answer
582 views
how to hash an array of address?
I want to hash a given array of address (using keccak256) into a single variable byte32.
for example:
function hashOfArray( address [] list) public constant returns (byte32) {
var hash = ...
...
0
votes
1answer
348 views
how can I return a hash value using keccak256?
I have this solidity function below. It is supposed to return the hash of a given data, but instead I get this: 0x
function hashData (bytes32 data) public constant returns (bytes32) {
var hash ...
3
votes
1answer
816 views
Ethereum address genеration and keccаk256
I'm trying to generate eth address on PHP. Having issue with keccak256.
I'm using this class: https://github.com/kornrunner/php-keccak
It works good, I checked many times on https://emn178.github.io/...
0
votes
1answer
355 views
Elliptic Key Crytography(ECC) for generating Private & Public Key
I want to generate Public-Private Key pair using ECC and then import them to Ethereum for creating an account through Geth. I am working on a Windows machine.
What are the steps I should follow for ...
1
vote
1answer
184 views
Handling keccak collisions in decoupled storage pattern
The decoupled storage pattern (https://blog.colony.io/writing-upgradeable-contracts-in-solidity-6743f0eecc88) uses a hash function (keccak) to turn arbitrary length values into 32 byte keys for the ...
2
votes
1answer
152 views
Understanding Low-Level Interface to Logs
This question is about Low-Level Interface to Logs, Solidity Documentation.
In given examples we are able to emit event normally:
pragma solidity ^0.4.0;
contract ClientReceipt {
event Deposit(
...
10
votes
1answer
170 views
Is it dangerous to name my function ccccvKygDv?
For those keeping track at home, the function hash of a function named ccccvKygDv() is 0xffffffff, the same as a null address.
pragma solidity ^0.4.0;
contract NullFunction {
function ccccvKygDv()...
0
votes
2answers
859 views
Web3js and keccak different values
In solidity there is the keccak256 function which hashes its arguments.
I use the keccak256 to compute and use the result to check if some entries exist in my array.
I want to compute the same value ...
0
votes
1answer
562 views
sha512 in Solidity or assembly, does it exist? [duplicate]
Is it possible to do sha512 within a smart contract? Or, not?
1
vote
2answers
196 views
What is insecure about generating a random number with keccak256?
Just read that generating random a random number via keccak256 is insecure. What is insecure about it and what are the implications of insecurity?
6
votes
1answer
907 views
Why doesn't my private key's public key generate the correct public address?
Private Key: 9ccbcabf23e271183dbed503b43277f4c6eee9ac918cd6cda75ebb73ceb35c7d
Corresponding Public Address: 0xa73Fb234B1773ed7b115D18A1f0a15579bA2C1e1 (check for yourself on MyCrypto, for example)
...
1
vote
2answers
638 views
Why doesn't my verification of a signed message signature work in PHP?
I am attempting to verify a signed message in PHP.
To be clear, I am not looking to interface with JSON-RPC or any external service, which I both a) know works and b) successfully verifies the ...
0
votes
1answer
908 views
Problem with sha3.keccak_256() update method in Python
I made a simple SHA3 Python script to generate Ethereum addresses and priv/pub keys. After that I sent some ETH to those addresses but then found out that priv keys do not correspond to the addresses ...
0
votes
1answer
2k views
How to generate keccak256(STRING,INTEGER) from Javascript?
In my solidity code I use bytes32 generated by
keccak256("STRING_VALUE',INTEGER)
to store values in the map.
One of the sample values that get generated is
...
0
votes
1answer
232 views
Solidity keccak256(“contract.storage.initialised”)
Hi I was searching on upgradeable/upgradable contracts, then I found this Rocket Pool by David Rugendyke
https://gist.github.com/darcius/6e8fa4faa6d9139f3950b6f1d9e96038
/// @dev Only allow access ...
0
votes
1answer
458 views
Keccak hash of null values, result in different hashes for different types
I was testing the hash value of null values for different types and I'm curious how it generates different results for different types. Here are the results.
String = ...
1
vote
0answers
411 views
keccak256 returns 0x000000000000000
I am using the keccak256 hashing algo to retrieve a message for a signature however I am getting the return value above.
Here is the code:
function adminAuthorizedSwap(string price, string quantity,
...
2
votes
2answers
565 views
Which sha3 output is the correct one?
Im trying to rewrite the all ethereum address creation and Tx creation in PHP and Im almost there. I have implemented a sha3 but now Im confused on if its giving me the correct output because it ...
1
vote
1answer
234 views
Correctly address Smart Contract storage address using web3js 1.0.0 library functions
A short while ago, I found a fantastic Medium article explaining Smart Contract storage.
The examples in this article have helped me to understand how to read a Smart Contract's storage values from ...
2
votes
1answer
101 views
Fair, barely malleable CSPRNG that can still be deterministic?
Just for fun, I wanted to start off making a test contract that generates ERC-20 tokens based off of prime length when in binary representation. I decided to use Rabin-Miller for the primality test, ...
5
votes
2answers
3k views
Python and Solidity keccak256 function gives different results
I am working on implementing a smart contract application in which, on and off chain calculations will exist. I will have to calculate the Hash Function of multiple integers with Python and Solidity. ...
5
votes
1answer
1k views
Distribution of KECCAK-256 hash values
Are values hashed using KECCAK - 256 uniformly distributed? If I use a KECCAK - 256 hash and then convert it to a number in a range 0 - N using the modulo operation, would the probability of obtaining ...
14
votes
2answers
11k views
Difference between keccak256 and sha3
I have been reviewing keccak256 implementation and sha3-256 that follows the FIPS standard. The sponge function is taking a while to set in, but I have noticed a difference in implementation :
I ...
8
votes
5answers
7k views
How to keccak256 multiple types in web3js to match Solidity keccak256?
if I keccak256(string1, address1) in Solidity, and then use web3.sha3(string1, address1) in web3.js, I get different results, even though when I do both with only string1 as a single argument, they ...
7
votes
1answer
3k views
Sign raw transaction offline with C++ on arduino
I'm exploring the IoT side of the EVM. I've programmed Arduinos and ESP8266s to interact with a Geth JSON RPC. I'm trying to be minimalistic and avoid NodeJS on the Geth JSON server side. Currently ...
3
votes
1answer
889 views
Correct way to concatenate hashes for merkle tree
I'm using Richard Moore's ethers.js to create hashes of documents that will eventually be stored on the EVM. To create a merkle tree with many documents I'll need to hash together hashes. What's the ...
3
votes
1answer
762 views
Python keccak256 hash of uint8 array not matching solidity hash?
I have a function in a smart contract:
function getNumberHash(uint8[] _numbers) constant public returns (bytes32) {
return keccak256(_numbers);
}
When I pass [1,2,3,4,5] as the argument it ...
5
votes
2answers
3k views
Generate ethereum address in C#
I'm following the instructions here to generate a valid ethereum address from scratch. I'm using BouncyCastle's secp256k1 to do the privkey --> pubkey, but I don't know where to get a proper ...
0
votes
2answers
127 views
How to limit function access to certain frontend?
I've a function in my smartcontract, that pays out ETH to the sender. However it sgould be only callable from registered users on my website, regardless of their ETH-address.
I already tried to send ...
6
votes
4answers
2k views
keccak3 in SOLIDITY and in WEB3 different hashes for an address type field
How can I get the same resulting hash from Keccak-256 ()in solidity and web3.sha3() in web3?
IN solidity using keccak256( address ) and using web3.sha3 ( address ) gives different results.
In web3 ...