手機驗證碼暴破:
工作中經常遇到需要爆破手機驗證碼的情況,一般的手機驗證碼都是4位或者6位純數字的,當然,暴破驗證碼是需要條件的:
1、程序有沒有錯誤鎖定
2、程序有沒有驗證碼防暴破,當然驗證碼要不可重放的纔有效防止暴破
3、手機驗證碼的失效時間,一般爲了用戶體驗都會有3到5分鐘,這種情況下如果出現6位驗證碼已經很難暴破了,假如還帶字母的6位,那還是放棄吧!當然你是土豪有高性能的機子,同時程序也扛得住那另說。
進入正題,如何生成這個手機驗證碼呢?用Python其實一行代碼就可以搞定了,如下4位純數字驗證碼:
for i in range(0,10000):print(str(i).zfill(4))
然後命令行執行這一行的腳本輸出重定向到文件裏就大功告成了。不過這樣不夠裝逼,今天我們把代碼稍微完善一下,方便沒有代碼基礎的人也能靈活使用。
代碼:
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
# @Time :2020/1/6 16:31
# @Author :Donvin.li
# @File :seq.py
import sys
import getopt
def main():
help=False
try:
opts,x=getopt.getopt(sys.argv[1:],'n:o:h')
for y,z in opts:
if y=='-h':
help=True
elif y=='-n':
num=int(z)
elif y=='-o':
file=z
else:
pass
except:
print('參數輸入有誤,請參考:python3 seq.py -h')
sys.exit()
if help:
usage()
else:
seq(num,file)
def seq(num,file):
x=10**num
for i in range(0,x):
y=str(i).zfill(num)
f=open(file,'a+')
f.write(y+'\n')
f.close()
def usage():
print('help info: python3 seq.py -n [number] -o [file]')
if __name__=='__main__':
main()
使用方法:
python3 seq.py -n [驗證碼位數] -o [輸出文件]
例如4位驗證:
python3 seq.py -n 4 -o test.txt