OP_SHA256 mismatch!

4

I am new to bitcoin. When I use this online 'Script Execution' site, to calculate the SHA256 hash of 1, I get 4bf5122f344554c53bde2ebb8cd2b7e3d1600ad631c385a5d7cce23c7785459a but using any other online calculator you get a different result 6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b So probably OP_SHA256 is not what I think, or something happens to input after 1 is pushed into stack.

Adrian Cousot

Posted 2015-10-17T19:27:43.653

Reputation: 43

Answers

13

Your conflict is caused because you are hashing different values in the two situations.

>>> import hashlib
>>> hashlib.sha256("1").hexdigest()
'6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b'

Your online tools are showing the hash of the string "1".

>>> hashlib.sha256("\x01").hexdigest()
'4bf5122f344554c53bde2ebb8cd2b7e3d1600ad631c385a5d7cce23c7785459a'

Bitcoin script stack elements are bytes, for OP_1 this is 01.

Anonymous

Posted 2015-10-17T19:27:43.653

Reputation: 10 054

@AdrianCousot I suggest marking it as the answer.PNDA 2015-10-18T02:33:13.897

@PandaLion98 New users have to wait 8 hours to accept an answer. So he could do it now, but not then.Michael Hampton 2015-10-18T03:42:18.467

@MichaelHampton I'm aware of that :)PNDA 2015-10-18T03:51:34.813

2Many thanks , I don't have enough rep to vote youAdrian Cousot 2015-10-18T06:35:10.637