[英]How can I increase the speed of string generating in my code?
通過搜索,我可以找到以下解決方案來生成給定字符串的所有組合並計算它們的哈希值。 現在我可以在21秒內生成10000000個字符串和哈希值。 但是,我需要一種更快的方法。
import itertools
import hashlib
import time
def pow():
global cnt
authdata = "eTSlASZYlLNgKJuYeIQvGVbiAcLEEOVgAQPzSrtCOIwQxQHyFHcfjgRQJBJDlojx";
l = 'abcdefghij'
result = itertools.product(*([l] * 7))
for each in result:
cnt = cnt + 1
suffix = ''.join(each)
authdataSuffix = authdata + suffix
hashValue = hashlib.sha1(authdataSuffix.encode('utf-8')).hexdigest()
if hashValue.startswith("0"*8):
print (hashValue)
cnt = 0
start = time.time()
pow()
end = time.time()
print(cnt)
print(end - start)
除了轉換到像C++
這樣的更快的語言之外,多線程或多處理是加速程序的最佳方式
一些改進的評論:
global
變量 timeit
進行有意義的測量 itertools
permutations
,它可以更快地生成,但也可以產生更少的數據
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.