你好,我自己设计了一个小小的加密器玩。你可以参考一下。这是带有界面的。
其中的算法你可以改掉。我是用来把密码转化一下并且复制到粘贴板来使用。希望对你有帮助!
import string
# -- coding: utf-8 --
import wx
from time import
from xlutilscopy import copy
import win32clipboard as w
import win32con
class MyApp(wxApp):
def OnInit(self):
selfframe = MyFrame(None, title='encryption')
selfSetTopWindow(selfframe)
selfframeregister_close_callback(lambda: True)
selfframeShow()
return True
class MyFrame(wxFrame):
def __init__(self,parent,id=wxID_ANY, title="",
pos=(700,480),size=(180,100),
style=wxDEFAULT_FRAME_STYLE ^wxRESIZE_BORDER ^ wxMAXIMIZE_BOX\
|wxSTAY_ON_TOP | wxFRAME_TOOL_WINDOW |wxSIMPLE_BORDER ,
name="MyFrame"):
bcolor=(0,0,0)
fcolor=(210,210,210)
super(MyFrame, self)__init__(parent, id, title,
pos, size, style,name)
selfpanel = wxPanel(self)
selfpanelSetBackgroundColour(bcolor)
selfpanelSetForegroundColour(fcolor)
selfSetBackgroundStyle(wxBG_STYLE_CUSTOM)
selfSetTransparent(251)
selfBind(wxEVT_CLOSE, selfonClose)
fontbutton = wxFont(10, wxROMAN, wxNORMAL, wxBOLD)
selfValueLabel1 = wxStaticText(selfpanel,-1,"superstar: ", pos=(3,10))
selfValueLabel1SetFont(fontbutton)
selfValue1 = wxTextCtrl(selfpanel,-1,"",pos=(65,10),
size=(106,-1),style=wxTE_PASSWORD)
selfValue1SetBackgroundColour(bcolor)
selfValue1SetForegroundColour(fcolor)
selfValue1SetInsertionPoint(11)
selfBind(wxEVT_TEXT_ENTER,selfValue1Enter,selfValue1)
confirm=wxButton(selfpanel,label='Confirm',pos=(3,40),size=(82,-1),style=wxBU_AUTODRAW)
confirmSetFont(fontbutton)
confirmSetBackgroundColour(bcolor)
confirmSetForegroundColour(fcolor)
selfBind(wxEVT_BUTTON,selfconfirmButton,confirm)
clear=wxButton(selfpanel,label='Clear',pos=(90,40),size=(82,-1),style=wxBU_AUTODRAW)
clearSetFont(fontbutton)
clearSetBackgroundColour(bcolor)
clearSetForegroundColour(fcolor)
selfBind(wxEVT_BUTTON,selfclearButton,clear)
def clearButton(self,event):
selfValue1SetValue('')
wOpenClipboard()
wEmptyClipboard()
wCloseClipboard()
def OnKeyDown(self,event):
keycode = eventGetKeyCode()
if keycode == wxWXK_UP:
print 'yes'
def Value1Enter(self, event):
selfgetvalue1=selfValue1GetValue()
def confirmButton(self,event):
selfgetvalue1=selfencrypt(selfValue1GetValue())
selfcopyToClip(selfgetvalue1)
def copyToClip(self,data):
wOpenClipboard()
wEmptyClipboard()
wSetClipboardData(win32conCF_TEXT, data)
wCloseClipboard()
def register_close_callback(self, callback):
self__close_callback = callback
def encrypt(self,s):
lis=''
ss=stringletters+stringdigits
for i in xrange(len(s)):
pos=ssfind(s[i])
num=pos(i%4+len(s))
lis+=ss[num/100%62]+ss[num%100%62]
return lis
def onClose(self, event):
selfDestroy()
wOpenClipboard()
wEmptyClipboard()
wCloseClipboard()
if __name__ == '__main__':
app=MyApp(False)
appMainLoop()
可以直接用加密软件加密。据了解加密软件可以加密所有类型文件的,可以对文件进行透明加密,在内部环境文件是可以正常打开的,脱离这个环境则打不开或乱码,可以禁止截屏、拷贝、复制、打印、修改等。文件外发需授权解密,未授权解密无论以任何形式发出都是无法正常打开的,还可设置文件外发的浏览次数和打开时间。在不影响日常使用的情况下保障文件安全。
有些时候加密rar软件经常会忘了密码,但记得密码的大概,于是乎用Python写个程序来暴力破解吧:
首先要搞清楚如何用命令行来解压缩,经研究,rar软件解压是用的unrarexe,将这个程序拷贝到C:\windows,然后进入加密软件包所在的文件夹,用命令行运行 下面的命令:
unrarexe e -pabcd 123rar
程序就是先前拷到C:\windows,然后参数e是指相对路径,如果在是本文件夹下运行这个命令,则只打文件名就可以了,输入密码的方式是-p后面的字段,假定是abcd,最后面的是要解压的文件名。
下面我们解决如何用Python来运行windows下的命令行
import subprocess
command = 'unrarexe e -n -pabcd 123rar'
subprocesscall(command)
这样也可以完成解压,既然这样,那就开干吧,写一个暴力循环,我以4位字母为例,字母加的不全,实际使用可以视情况添加
list1=['a','b','c','d']
list2=['a','b','c','d']
list3=['a','b','c','d']
list4=['a','b','c','d']
for i1 in range(0,len(list1),1):
for i2 in range(0,len(list2),1):
for i3 in range(0, len(list3), 1):
for i4 in range(0, len(list4), 1):
password=list1[i1]+list2[i2]+list3[i3]+list4[i4]
print(password)
command = 'unrarexe e -n -p' + password + ' 123rar'
child = subprocesscall(command)
if child == 0:
print('解压密码是:',password)
break
child是返回值,为0表示解压成功,可以挑出循环并打印密码了,我实测,4位纯数字或者字母,只需要十多秒就出来了,非常简单
加密有很多种加密方式,常用的加密是md5加密,给你写个例子
import hashlib
def md5(str):
m = hashlibmd5()
mupdate(strencode("utf8"))
print(mhexdigest())
return mhexdigest()
def md5GBK(str1):
m = hashlibmd5(str1encode(encoding='gb2312'))
print(mhexdigest())
return mhexdigest()
md5('hello')
md5GBK('你好')
def encryption():
str_raw = input("请输入明文:")
k = int(input("请输入位移值:"))
str_change = str_rawlower()
str_list = list(str_change)
str_list_encry = str_list
i = 0
while i < len(str_list):
if ord(str_list[i]) < 123-k:
str_list_encry[i] = chr(ord(str_list[i]) + k)
else:
print ("解密结果为:"+""join(str_list_decry))
while True:
print (u"1 加密")
print(u"2 解密")
choice = input("请选择:")
if choice == "1": encryption()
elif choice == "2": decryption()
else: print (u"您的输入有误!")
以上就是关于python中如何设计一个密码加密器全部的内容,包括:python中如何设计一个密码加密器、python封装成exe如何加密、如何用Python写一个暴力破解加密压缩包的程等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)