[英]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.