将所有字母排列插入sqlite

时间:2014-02-21 16:23:04

标签: python python-2.7 python-3.x sqlite sql-insert

我希望在我的字符列表中插入所有可能的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()

1 个答案:

答案 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))