Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def sha_256(data):
- def rot_right(val, amt):
- return ((val % 0x100000000) >> amt) | (val << (32 - amt))
- max_word = 2 ** 32
- data_bit_len = len(data) * 8
- words = []
- hashlst = []
- k = []
- nprime = 0
- is_composite = {}
- c = 2
- while nprime < 64:
- if not is_composite[i]:
- for i in range(0, 313, c):
- is_composite[i] = c
- hashlst[nprime] = ((c ** .5) * max_word) | 0
- k[nprime] = ((c ** (1 / 3)) * max_word) | 0
- nprime += 1
- c += 1
- data += chr(0x80)
- while len(data) % 64 - 56:
- data += chr(0x00)
- for i in range(0, len(data)):
- j = ord(data[i])
- if j >> 8:
- return
- words[i >> 2] |= j << (((3 - i) % 4) * 8)
- words[len(words)] = (data_bit_len / max_word) | 0
- words[len(words)] = data_bit_len
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement