"""
該原始碼的實現過程:1、這年頭,幾十個賬戶,幾十個密碼,每次一設定密碼就頭疼,不知道設定啥。
設定簡單容易被暴力破解,設定複雜不知道設定成啥樣的密碼。
所以就想出來設定隨機數密碼,自動生成,又能防止暴力破解。
2、最大的優點也是缺點,人是記不住隨機數的,所以密碼備份就顯得特別重要。
特別是對該密碼的解釋,不然你回頭找密碼的時候,發現這個密碼不知道對應哪個賬號。
3、1.0版本用了黑窗,非常不美觀,這次用了窗體。
"""import os
import random
import easygui as eg
# 字母型別
englishchar =
['q'
,'w'
,'e'
,'r'
,'t'
,'y'
,'u'
,'i'
,'o'
,'p'
,'l'
,'k'
,'j'
,'h'
,'g'
,'f'
,'d'
,'s'
,'a'
,'z'
,'x'
,'c'
,'v'
,'b'
,'n'
,'m'
]# 數字型別
numberchar =
['1'
,'2'
,'3'
,'4'
,'5'
,'6'
,'7'
,'8'
,'9'
,'0'
]# 符號型別
symbolchar =
['!'
,'@'
,'#'
,'$'
,'%'
,'^'
,'&'
,'*'
]# 生成的密碼
password =
''# 使用者選擇的密碼型別
allchar =
# 選擇密碼型別,如果選擇cancel退出程式,啥都不選退出程式
typepassword = eg.multchoicebox(msg=
"密碼型別"
, title=
"隨機密碼"
, choices=
['數字'
,'字母'
,'符號'],
preselect=
0, callback=
none
, run=
true
)# 退出程式
ifnot
isinstance
(typepassword,
list):
exit(1)
# 根據密碼型別拼接密碼庫
for i in
(typepassword)
:if i.__eq__(
'數字'):
allchar += numberchar.copy(
)if i.__eq__(
'字母'):
allchar += englishchar.copy(
)if i.__eq__(
'符號'):
allchar += symbolchar.copy(
)# 把密碼打亂
random.shuffle(allchar)
# 設定密碼長度
passwordlength = eg.integerbox(msg=
"密碼的長度(9-25)"
, title=
"隨機密碼"
, default=
none
, lowerbound=
9, upperbound=
25, image=
none
, root=
none
)# 退出程式
ifnot
isinstance
(passwordlength,
int)
: exit(1)
# 配置密碼的資訊
while1:
chooses = eg.multenterbox(msg=
"該密碼的資訊"
, title=
"隨機密碼"
, fields=
['這個密碼給誰用?'
,'該密碼的賬號'
], callback=
none
, run=
true
)# 退出程式
ifnot
isinstance
(chooses,
list):
exit(1)
# 資訊滿足要求 退出迴圈 進入下一步
ifnot
''in chooses:
break
else
:# 不滿足要求
eg.msgbox(msg=
"資訊不能設定為空,請重新輸入"
, title=
"隨機密碼"
, ok_button=
"ok"
, image=
none
, root=
none
)# 獲得密碼
for i in
range
(int
(passwordlength)):
# 每次迴圈隨機取一位密碼
password = password + allchar[random.randint(0,
len(allchar)-1
)]eg.msgbox(msg=
"因為密碼是隨機的,需要備份密碼,接下來會選擇存放備份密碼的資料夾。"
, title=
"隨機密碼"
, ok_button=
"ok"
, image=
none
, root=
none
)# 選擇檔案儲存路徑
path = eg.diropenbox(msg=
"備份密碼的檔案"
, title=
"隨機密碼"
, default="")
# 拼接檔案路徑
passwordpath = path +
'/'+ chooses[0]
+'的賬戶和密碼.txt'
# 如果檔案重複 檔案結尾拼接_repeat
while1:
if os.path.exists(passwordpath)
: passwordpath = passwordpath[:-
4]+'_repeat.txt'
else
:break
# 把賬號密碼寫入檔案,進行備份
with
open
(passwordpath,
'w', encoding=
'utf8')as
file
:file
.writelines(
"賬戶id:"
+ chooses[1]
+'\n'
)file
.writelines(
'密碼:'
+ password)
file
.close
# 展示密碼
eg.enterbox(msg=
"隨機生成的密碼"
, title=
"隨機密碼"
, default=password,
strip=
true
, image=
none
, root=
none
)
SSL TLS高強度加密
由於ssl http apache三者共同對請求進行處理,這使得在支援ssl的web伺服器上實現特殊的安全制約變得不那麼簡單。本節介紹了普通情況下的解決方案,作為找出最終方案的第一步。採用這些方案以前,先要盡量地去理解,不了解其限制和相關性就貿然使用是最糟糕的了。可以這樣建立乙個僅使用sslv2協議...
高強度間歇訓練 HIIT
大家都知道身體健康很重要,但如果每天只有45分鐘,可試試下面這種叫hiit high intensity interval training 的方法 首先跑步熱身15 25分鐘 接著做高強度的帶氧運動,每輪45秒,然後休息30 45秒,總共做8 10個迴圈 最後,從頭到足,做一些拉伸運動結束,減少肌...
安卓高強度本地資料加密指北
不想寫so而又想加密本地資料有一定安全強度。對於對稱加密,aes作為des的公升級版,安全性得到提公升,是現在本地加密的主流。本文給出aes的最簡實踐原始碼。做這個的起因是因為東家的加密方法是使用so庫,優點是效能過得去,不依賴安卓版本,不用頻繁改動,但是缺點就是秘鑰儲存在本地,存在本地的內容即使扔...