forzeder 发表于 2020-9-22 00:03:27

破譯密碼問題

在破譯密碼上,是文字串逐個破還是生成密碼本逐個比照破譯好?

# f = open('passdict.txt', 'w')
# for id in range(1000000):
#   password = str(id).zfill(6) + '\n'
#   f.write(password)
# f.close()

f = open(r'C:\Users\pythonProject\passdict.txt')
a = input('請輸入6位密碼(數字):')
counts = 0
while counts >= 0:
    for x in f.readlines():
      x = x.strip("\n")
      if x == a:
            print(x)
            break
      else:
            counts = counts + 1

這個是先生成 000000 - 999999 的密碼本再逐一提取字串比對破譯

問題1

若我要生成包含大小寫英文及數字的密碼本...要如何生成? python做得到嗎?

問題2

若我只知道密碼由英文大小寫及數字組成,多少位密碼都不知道的情況下要怎麼破譯?
大小寫英文+數字,每個字比對,==的話就記錄起來 直到最後一個字元比對不上結束
然後print出字串?

疾风怪盗 发表于 2020-9-22 01:00:10

1、能做到(代码被审核了,发不上)
2、位数不知道,只能一位、二位、三位这样比较吧

forzeder 发表于 2020-9-22 20:35:30

len(list)不就知道幾位數了?
再來就是設置浮動的破譯代碼
就是位數知道後自動開始跑該位數的試錯~
試對就紀錄下來
然後全部記錄好後print password list

我的想法是這樣啦~
只不過""位數知道後自動開始跑該位數的試錯~""
大小寫a~z + 0~9 共計62個字元
如何設置非固定位元的字元比對?

lijiachen 发表于 2020-9-23 18:58:37

可以暴力破解,生成所有可能的密码,python中用for循环嵌套就行,或者位数不固定用itertool的combinations
页: [1]
查看完整版本: 破譯密碼問題