0

今から「過去1時間以内」の将来のハッシュに一致するハッシュ文字列を計算する必要があります。

私は誤ってしました:

now = datetime.now()
hash = now.strftime("%D %H")

しかし、それは単に分を切り捨てるので、私が4:55と言った場合、5分以内に「時間」が上がります。

ハッシュ文字列の利用者は、ハッシュが過去1時間以内に計算されたかどうかを知る必要があるため、過去1時間はハッシュの一部である必要があります。

4

2 に答える 2

1

それはまったくありえないと思います。たとえば、ハッシュ X、Y、Z を持つ値 4:15、4:55、5:30 を考えます。4:55 は、4:55 と 5:30 の両方の過去 1 時間以内であるため、Y は Z と等しくなければなりません。ただし、4:15 は 5:30 ではなく 4:55 の過去 1 時間以内であるため、X は Y と等しく、Z とは異なる必要があります。

ハッシュを避けて、katrielalex が提案したように、datetime (または timedelta) を保存し、それをチェックで使用することをお勧めします。

更新:私はあなたを誤解しているようです.あなたは暗号化のためのハッシュが必要であり、迅速なアクセスのためにハッシュテーブルに物を保存するためではありません..ハッシュを何に対してチェックするかなど

1 時間には多くの分はなく、数秒であっても、原則として、最初の時間を単純にハッシュし (最も近い分/秒に切り捨て)、ハッシュがまだ有効かどうかを確認するには、現在の時間を取得して確認します。その前の毎分/秒のハッシュ。素朴な解決策ですが、より良いものへの出発点になる可能性があります。

于 2012-03-01T20:12:08.657 に答える
0

mgibsonbrの提案に似た単純でおおよその解決策は、現在の時間で新しいトークンを生成し、それが失敗した場合は過去の時間で再度確認することです。

于 2012-03-01T20:52:51.390 に答える