python中如何设计一个密码加密器

python中如何设计一个密码加密器,第1张

你好,我自己设计了一个小小的加密器玩。你可以参考一下。这是带有界面的。

其中的算法你可以改掉。我是用来把密码转化一下并且复制到粘贴板来使用。希望对你有帮助!

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写一个暴力破解加密压缩包的程等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10129182.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存