簡體   English   中英

如何在代碼中提高字符串生成的速度?

[英]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進行有意義的測量
  • 使用Python 3
  • 我認為你可以使用itertools permutations ,它可以更快地生成,但也可以產生更少的數據
  • 讓一切成為可能

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM