python 建立密碼
使用:
mkpass -l [password length] [-nu|-nl|-ns]
獲取幫助:
mkpass -h
mkpass -l [password length] [-nu|-nl|-ns]
獲取幫助:
mkpass -h
點選(此處)摺疊或開啟
-
#!/usr/bin/env python3
-
# _*_coding:utf-8_*_
-
# Auth by raysuen
-
-
import sys,string,re
-
import random
-
-
class MakePass(object):
-
rPassInfo={
-
"Length":8,
-
"NoUpper":False,
-
"NoLower":False,
-
"NoSysbol":False
-
}
-
def __init__(self,passlen=8,nu=False,nl=False,ns=False):
-
if passlen != 8:
-
self.rPassInfo["Length"] = passlen
-
if nu == True:
-
self.rPassInfo["NoUpper"] = True
-
if nl == True:
-
self.rPassInfo["NoLower"] = True
-
if ns == True:
-
self.rPassInfo["NoSysbol"] = True
-
-
def MkPass(self):
-
rPassStr={
-
"passStr":'',
-
"AllChar":[],
-
"pwIndex":[],
-
"num":0
-
}
-
if self.rPassInfo["NoUpper"] == False:
-
rPassStr["AllChar"].append(random.choice(string.ascii_uppercase))
-
rPassStr["passStr"] = rPassStr["passStr"]+''.join(string.ascii_lowercase)
-
rPassStr["num"] += 1
-
if self.rPassInfo["NoLower"] == False:
-
rPassStr["AllChar"].append(random.choice(string.ascii_lowercase))
-
rPassStr["passStr"] = rPassStr["passStr"] + ''.join(string.ascii_lowercase)
-
rPassStr["num"] += 1
-
if self.rPassInfo["NoSysbol"] == False:
-
rPassStr["AllChar"].append(random.choice("!@#$%&*()+.,"))
-
rPassStr["passStr"] = rPassStr["passStr"] + "!@#$%&*()+.,"
-
rPassStr["num"] += 1
-
rPassStr["passStr"] = rPassStr["passStr"] + ''.join(string.digits)
-
rPassStr["AllChar"].append(random.choice(string.digits))
-
rPassStr["num"] += 1
-
-
rPassStr["pwIndex"].extend(random.sample(range(1,self.rPassInfo["Length"]),rPassStr["num"]))
-
rPassStr["pwIndex"].sort()
-
-
n = 0
-
i = 0
-
res = ''
-
while i < self.rPassInfo["Length"]:
-
isMatch = False
-
for j in rPassStr["pwIndex"]:
-
if i == j:
-
res = res + ''.join(rPassStr["AllChar"][n])
-
n += 1
-
i += 1
-
isMatch = True
-
break
-
if isMatch == False:
-
res = res + ''.join(random.choice(rPassStr["passStr"]))
-
i += 1
-
-
return res
-
-
def func_help():
-
print("""
-
Name:
-
mkpass --make password
-
-
Synopsis:
-
mkpass -l [password length] [-nu|-nl|-ns]
-
-
Description:
-
-l Specify a number for the length of password,defaul 8
-
-nu Don't use upper
-
-nl Don't use lower
-
-ns Don't use special character
-
-h Get help
-
""")
-
-
-
if __name__=='__main__':
-
i = 1
-
mp = MakePass()
-
while i < len(sys.argv):
-
if sys.argv[i] == '-l': #-l means length
-
if i+1 > len(sys.argv):
-
print("The value of -l must be specified!!!")
-
exit(1)
-
elif re.match("^-", sys.argv[i+1]) != None: #判斷下個引數是否以-開頭
-
print("The value of -l must be specified!!!")
-
exit(1)
-
elif sys.argv[i+1].isdecimal() == False: #判斷-l下一個引數是否為數字
-
print("The value of -l must be digits")
-
exit(1)
-
i += 1
-
mp.rPassInfo["Length"] = int(sys.argv[i]) #獲取-l引數的value
-
elif sys.argv[i] == '-nu': #-nu 指定不適用大寫字元
-
mp.rPassInfo["NoUpper"] = True
-
elif sys.argv[i] == '-nl': #-nu 指定不適用小寫字元
-
mp.rPassInfo["NoLower"] = True
-
elif sys.argv[i] == '-ns': #-nu 指定不適用特殊字元
-
mp.rPassInfo["NoSysbol"] = True
-
elif sys.argv[i] == '-h':
-
func_help()
-
exit(0)
-
i += 1
- print(mp.MkPass())
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28572479/viewspace-2153864/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 建立oracle 密碼檔案Oracle密碼
- MYSQL建立使用者時用密文密碼MySql密碼
- orapwd建立密碼及驗證方法密碼
- svn建立使用者及密碼密碼
- 管理(002):建立密碼檔案示例密碼
- ORACLE 8I 建立密碼檔案!Oracle密碼
- python實現密碼破解Python密碼
- impdp自動建立使用者與密碼密碼
- Go 建立帶密碼的zip壓縮包Go密碼
- Linux基礎命令---htpasswd建立密碼檔案Linux密碼
- linux建立使用者並設定密碼Linux密碼
- MySQL 多例項給root使用者建立密碼MySql密碼
- orapwd 工具建立密碼檔案遵守的命名方法密碼
- Oracle的ORAPWD工具用來建立密碼檔案Oracle密碼
- 教你建立容易記憶而又安全的密碼(轉)密碼
- Win8系統PIN碼與圖片密碼的建立密碼
- 愷撒密碼Java/Python實現密碼JavaPython
- 1.7.2. 使用ORAPWD建立資料庫密碼檔案資料庫密碼
- 如何在命令列上建立符合特定規範的密碼?命令列密碼
- MySQL建立使用者,配置許可權、密碼策略MySql密碼
- 建立使用者時的密碼校驗問題密碼
- Ssh 信任關係建立後仍需要輸入密碼密碼
- Oracle密碼檔案的建立、使用和維護 (zt)Oracle密碼
- shell+expect建立多個節點無密碼ssh密碼
- 希爾密碼(hill密碼)密碼
- 密碼安全:密碼設定要求,密碼爆破辦法,密碼歸類使用,密碼處置方案密碼
- Python海康威視批量掃弱密碼Python密碼
- 使用 Python 學習和破解古典密碼Python密碼
- 使用python進行密碼暴力破解Python密碼
- 1.7. 建立和維護資料庫密碼檔案資料庫密碼
- linux下SCP無密碼傳輸(建立互信關係)Linux密碼
- python指令碼批次建立資料表Python指令碼
- 使用 Mitmdump 與 Python 指令碼進行密碼嗅探MITPython指令碼密碼
- mysql學習之-密碼管理(預設密碼,修改密碼,解決忘記密碼)MySql密碼
- Python學習——Caesar Cipher密碼破解(加密)方法Python密碼加密
- Python - 自導自演 密碼字典暴力破解Python密碼
- Python內建庫:getpass(密碼輸入工具)Python密碼
- 序列密碼與分組密碼密碼