我試圖找出在哪個時間內可以計算多少個哈希值。我正在使用SHA-512(512位輸出的SHA-2)。我沒有編寫這個Hashfunction,但我做了一個foor循環來測試它。我並不是很熟悉C++,所以我不知道爲什麼會出現以下情況。C++示例中的for-lops如何精確工作:計算哈希值
當我執行程序時,計算花費的時間越來越長。雖然我在幾秒鐘之內擁有大約10000個Hashes,但幾個小時後,我花了一分鐘的時間計算了1000個Hashes ...有人能告訴我爲什麼以及如何「解決」這個問題嗎?
這是相關的代碼,我想:
int fortschritt = 0;
int prozent = 0;
string temp;
stringstream convert;
string loeschen;
for (int i = 1; i <= 4294967295; i++)
{
convert << i;
temp = convert.str();
loeschen = sha512(temp);
if (((int)(i/1000)) > fortschritt)
{
fortschritt = (int)(i/1000);
if (((int)(i*100)/4294967295) > prozent)
{
prozent = ((int)(i*100)/4294967295);
}
cout << fortschritt*1000 << " von 4294967295 - " << prozent << " %" << endl;
}
}
輸出看起來是這樣的:
1000 von 4294967295 - 0 %
2000 von 4294967295 - 0 %
3000 von 4294967295 - 0 %
4000 von 4294967295 - 0 %
5000 von 4294967295 - 0 %
6000 von 4294967295 - 0 %
7000 von 4294967295 - 0 %
8000 von 4294967295 - 0 %
9000 von 4294967295 - 0 %
10000 von 4294967295 - 0 %
[...]
我認爲這是與我使用變量的方式,但我我不確定,也不知道如何正確地做到這一點。 如果這是一個愚蠢的問題,請原諒我,但現在困擾了我一段時間。
預先感謝任何幫助:)
約翰
所有這些分歧對於你的程序來說都不是很健康,如果在你重置它的地方設置了一個額外的計數器j,它將進入1000以進入fortschritt。 – Surt 2014-09-11 10:58:57