python 编程 有了加密程序,怎么写解密程序

python 编程 有了加密程序,怎么写解密程序,第1张

对 Python 加密时可能会有两种形式,一种是对Python转成的exe进行保护,另一种是直接对py或者pyc文件进行保护,下面将列举两种形式的保护流程。

1、 对 python转exe加壳

下载最新版Virbox Protector加壳工具,使用加壳工具直接对demoexe进行加壳 *** 作

2、对py/pyc加密

第一步,使用加壳工具对 python 安装目录下的 pythonexe 进行加壳,将 pythonexe 拖入到加壳工具 VirboxProtector 中,配置后直接点击加壳。

第二步,对py/pyc 进行加密,使用 DSProtector 对py/pyc 进行保护。

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

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

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()

修改后运行结果:

a 加密

1进行栅栏加密

2进行栅栏解密

请选择: 1

请输入分组数目 2

请输入列排编号 21

请输明文 abcdefgh

b a

d c

f e

h g

b 解密

1进行栅栏加密

2进行栅栏解密

请选择: 2

请输入分组数目 2

请输入列排编号 21

请输密文 b a d c f e h g

abcdefgh

修改后的代码:

def Encrypt(n,col,M):

row=len(M)/n

if len(M)%n>0:

row+=1

arr=[[""for x in range(0,n)] for y in range(0,row)]

x=0

for i in range(0,row):

for j in range(0,n):

if x<len(M):

arr[i][j]=M[x]

#print M[x],

x+=1

#print "\r\n"

for i in range(0,row):

for j in range(0,n):

m=int(col[j])-1

print arr[i][m],

print "\r\n"

def Decrypt(n, col, C):

C=""join(Csplit())

row=len(C)/n

if len(C)%n>0:

row+=1

arr=[[""for x in range(0,n)] for y in range(0,row)]

x=0

for i in range(0,row):

for j in range(0,n):

if x<len(C):

arr[i][j]=C[x]

#print C[x],

x+=1

#print "\r\n"

M=""

for i in range(0,row):

for j in range(0,n):

m=int(col[j])-1

#print arr[i][m],

M+=arr[i][m]

#print "\r\n"

print M

print u"1进行栅栏加密\r\n2进行栅栏解密\r\n请选择:"encode("gb2312"),

sel=raw_input()

if int(sel)==1:

print u"请输入分组数目"encode("gb2312"),

n=int(raw_input())

print u"请输入列排编号"encode("gb2312"),

col=raw_input()

print u"请输明文"encode("gb2312"),

M=raw_input()

while len(M)<n3:

print u"明文必须是分组数目的3倍"encode("gb2312")

M=raw_input()

Encrypt(n,col,M)

else :

print u"请输入分组数目"encode("gb2312"),

n=int(raw_input())

print u"请输入列排编号"encode("gb2312"),

col=raw_input()

print u"请输密文"encode("gb2312"),

C=raw_input()

while len(C)<n3:

print u"密文必须是分组数目的3倍"encode("gb2312")

C=raw_input()

Decrypt(n,col,C)

python版本:python3,系统:win

会安装很多包:chardet, certifi, urllib3, idna, requests, pyyaml, Naked, shellescape, crypto

这时你会看到有crypto文件夹,将其重命名为Crypto即可;

pip uninstall pycrypto,然后安装pycryptodome,pip install pycryptodome,即可。

你会发现site-packages下的该模块的目录名已经是大写了-Crypto

这个时候pycryptodome就来了,它是pycrypto的延伸版本,用法和pycrypto是一模一样的

Python\Python36\Lib\site-packages,找到这个路径,下面有一个文件夹叫做crypto,将小写c改成大写C就ok了。

可以直接用加密软件加密。据了解加密软件可以加密所有类型文件的,可以对文件进行透明加密,在内部环境文件是可以正常打开的,脱离这个环境则打不开或乱码,可以禁止截屏、拷贝、复制、打印、修改等。文件外发需授权解密,未授权解密无论以任何形式发出都是无法正常打开的,还可设置文件外发的浏览次数和打开时间。在不影响日常使用的情况下保障文件安全。

以上就是关于python 编程 有了加密程序,怎么写解密程序全部的内容,包括:python 编程 有了加密程序,怎么写解密程序、python中如何设计一个密码加密器、利用以下python代码编写栏栅加密和解密等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存