2011-01-06 37 views
10

Tôi cần hàm Hash với đầu ra 256 bit (như int dài).Hàm băm 256 bit Python với đầu ra số

Trước tiên tôi nghĩ tôi có thể sử dụng SHA256 từ hashlib nhưng nó có một đầu ra chuỗi và tôi cần một số để tính toán.

Chuyển đổi chuỗi 32 byte thành một chuỗi dài cũng sẽ hoạt động nhưng tôi không tìm thấy gì cả. Trong cấu trúc có chức năng giải nén nhưng điều này chỉ hoạt động đối với 8 loại byte dài và không hoạt động lâu hơn.

Trả lời

17

Làm thế nào về:

>>> import hashlib 
>>> h = hashlib.sha256('something to hash') 
>>> h.hexdigest() 
'a3899c4070fc75880fa445b6dfa44207cbaf924a450ce7175cd8500e597d3ec1' 
>>> n = int(h.hexdigest(),base=16) 
>>> print n 
73970130776712578303406724846815845410916448611708558169000368019946742824641 
1

cập nhật python 3.x

import hashlib 
value = 'something to hash' 
t_value = value.encode('utf8') 
h = hashlib.sha256(t_value) 
h.hexdigest() 
n = int(h.hexdigest(),base=16) 
print(n) 
Các vấn đề liên quan