2016-04-08 37 views
0

SHA-256'yı belirli bir sorun için kullanmak istiyorum: Bir bytrayray öğesinden özet hesaplayın ve sonuçta elde edilen özetlemeyi başka bir bayt bloğuna birleştirin (bu sorun için 1024 bayt bloğu) ve birleştirilmiş değerler için sindirimi hesaplar.SHT-256 kullanarak Python'da bytes ile çalışma

from hashlib import sha256 
rawhex4 = b'\x44'*773 
rawhex3 = b'\x33'*1024 

h = sha256() 
h.update(rawhex4) 
aux = h.digest() 

Bu hexdigest geçerli:: İşte

benim iki bayt taşlarıdır: Örneğin

Bu 32 bayt sonraki bloğa sindirmek ve karma bitiştirmek istiyorum sonra

d8f8a9eadd284c4dbd94af448fefb24940251e75ca2943df31f7cfbb6a4f97ed ama doğru cevabı almıyorum.

h.update(rawhex3 + aux) 

Ben karma rawhex3 + karma (rawhex4) bana bu özetini verecek gerçeği biliyoruz: Ben aşağıdakileri yapın

26949e3320c315f179e2dfc95a4158dcf9a9f6ebf3dfc69252cd83ad274eeafa

Ben Ne eksik olabilir? Oldukça yeni Python

cevap

1

rawhex4'dan zaten bit içeren karma nesneyi yeniden kullanıyorsunuz. Yeni bir tane oluşturursanız, 26..fa sonucunu alırsınız.

+0

İyi açıklama. İhtiyacı hissettiğinizde bir örnek kodumu çalın; Cevabımı bir süre sonra silerim. –

+0

Vay h.update ile düşündüm() hash işlevi temizlendi, bu yüzden sorunumun bayt bitiştirildiğini düşündüm ... basit çözümü göremedim ... Teşekkürler! –

0

bu deneyin:

from hashlib import sha256 
rawhex4 = b'\x44'*773 
rawhex3 = b'\x33'*1024 

h1 = sha256() 
h1.update(rawhex4) 
aux = h1.digest() 

h2 = sha256() 
h2.update(rawhex3 + aux) 
print h2.hexdigest()