我希望在我的字符列表中插入所有可能的3位数排列,并将其哈希值插入到Sqllite中。任何正文都可以帮我修复这段代码:此外,我正在使用带有2个字段的Cryptable的sqliteexpert:1)PlainText和2)Md5Hash,它与sqlite3一样导入代码?
我试过了:
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()
答案 0 :(得分:1)
使用permutations中的itertools并致电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))