10

md5 コンテキストをシリアライズ/デシリアライズしたい。しかし、Pythonでそれを行う方法がわかりません。私がやりたいことの疑似コード。

import md5
# Start hash generation
m = md5.new()
m.update("Content")

# Serialize m
serialized_m = serialize(m)

# In another function/machine, deserialize m
# and continue hash generation
m2 = deserialize(serialized_m)
m2.update("More content")
m2.digest()    

このための C++ ライブラリがあります。Python用のものはありますか?md5 ライブラリがサポートしていないのはなぜですか? セキュリティ上の懸念はありますか? ありがとう。

編集: たとえば、HTTP サーバーがさまざまな HTTP 要求でストリーミング データを受け入れたいため、これを行いたいと考えています。リクエスト間で何らかの方法で md5 コンテキストをシリアル化すると便利です。

4

2 に答える 2

1

私はグイド・V・ロッサム氏に尋ねました。彼は、「方法はないと思います。しかし、それはまともな機能要求になるかもしれません。bugs.python.org に提出することができます。」と答えました。だから私はしました。

http://bugs.python.org/issue16059

于 2012-09-27T17:00:54.830 に答える
1

HASH オブジェクトはシリアライズできません: Python でハッシュ オブジェクトをシリアライズする方法

ハッシュ化されていないデータを渡すことができると仮定します。

from Crypto.Hash import MD5

# generate hash
m = MD5.new()
s = "foo"
m.update(s)

# serialize m
serialized = s

# deserialize and continue hash generation
m2 = MD5.new(serialized)
if m2.hexdigest() == m.hexdigest():
    print "success"
m2.update("bar")
于 2012-09-26T02:05:36.307 に答える