2014-02-21 4 views
0

해시 값이있는 문자 목록에 가능한 모든 3 자리 순열을 Sqllite.Can에 삽입하려면이 코드 조각을 수정하는 데 도움이되는 몸 : 게다가, Cryptable 2 개의 필드가있는 경우 : 1) PlainText와 2) Md5Hash, 코드로 가져 오기 위해 sqlite3과 동일합니까? itertools에서sqlite에 문자의 모든 순열 삽입

import hashlib 
m = hashlib.md5() 
import sqlite3 
conn = sqlite3.connect('pr.db') 
c = conn.cursor() 
#print hashlib.md5("a").hexdigest() 
mylist =[1,"A",3,"B",5,6,7,8,9,10] 
print len(mylist) 

for i in range(len(mylist)): 
print hashlib.md5(str(mylist[i])).hexdigest() 
c.execute('insert into Cryptable values (i)' , hashlib.md5(i)) 
connection.commit() 
for j in range(len(mylist)): 
c.execute('insert into Cryptable values (j)' , hashlib.md5(j)) 
connection.commit() 
for k in range(len(mylist)): 
c.execute('insert into Cryptable values (k)' , hashlib.md5(k)) 
connection.commit() 

답변

1

사용 permutations을하고 문자열로 해시를 얻을 수 hexdigest 전화 :

나는 시도

from hashlib import md5 
from itertools import permutations 

alphabet = "AB13567890" 
perm_length = 3 
perms = map("".join, permutations(alphabet, perm_length)) 
hashes = [md5(k).hexdigest() for k in perms] 

for hash in hashes: 
    # print("Do sql stuff: {}".format(hash)) 
+0

친애 부치, 당신은 내 자신의 코드를 편집 할 날을 도와주세요 수 itertools를 사용하고 있습니까? – user3323774