当前位置:首页 » 密码管理 » py加密

py加密

发布时间: 2023-04-06 07:41:36

python 加密程序

#coding=utf-8

'''''

Description:可逆的加密与解密

Environment:python2.5.x

Author:[email protected]

'''

importos

importsys

classCode(object):

'''''可逆的加密与解密'''

def__init__(self,key="[email protected]"):

self.__src_key=key

self.__key=self.__get_strascii(self.__src_key,True)

defencode(self,value):

'''''加密函数,加密后为一串数字'''

return"%d"%(self.__get_strascii(value,True)^self.__key)

defdecode(self,pwd):

'''''解密函数'''

ifself.is_number(pwd):

returnself.__get_strascii((int(pwd))^self.__key,False)

else:

print'requirenumber.'

defreset_key(self,key):

'''''重新设置key'''

self.__src_key=key段亮

self.__key=self.__get_strascii(self.__src_key,True)

#===============================================================================

#内部调用接口

#===============================================================================

def__get_strascii(self,value,bFlag):

ifbFlag:

returnself.__get_str2ascii(value)

else:

returnself.__get_ascii2str(value)

def__get_str2ascii(self,value):

ls=[]

foriinvalue:

ls.append(self.__get_char2ascii(i))

returnlong("".join(ls))

def__get_char2ascii(self,char):

'''''获取单个字符的acsii码值'''

try:

return"%03.d"%ord(char)

except(TypeError,ValueError):

print"keyerror."

exit(1)

def__get_ascii2char(self,ascii):

ifself.is_ascii_range(ascii):

returnchr(ascii)

else:

print"asciierror(%d)"%ascii

exit(1)握衫宽

def__get_ascii2str(self,n_chars):

ls=[]

s="%s"%n_chars

n,p=divmod(len(s),3)

ifp>0:

nRet=int(s[0:p])

ls.append(self.__get_ascii2char(nRet))

pTmp=p

whilepTmp<len(s):

ls.append(self.__get_ascii2char(int(s[pTmp:pTmp+3])))

pTmp+=3

return"".join(ls)

#================================================================================

#工具接口

#================================================================================

defis_number(self,value):

try:

int(value)

returnTrue

except(TypeError,ValueError):

pass

returnFalse

defis_ascii_range(self,n):

return0<=n<256

defis_custom_ascii_range(self,n):

return33<=n<48or58<=n<126

classUsage(object):

'''''

命令行参数读取与解析

'''

def__init__(self):

塌神self._clsWork=Code()

self._args_dic={'arg_help':['-?','-help'],

'arg_p':['-p','-pwd'],

'arg_t':['-t','-text'],

'arg_k':['-k','-key'],

}

defhelp(self,*k):

strHelp="Usage:pwd[-options][args...]whereoptioninclude:"

strHelp+="""

-?-helpprintthishelpmessage

-k<key_str>-p<pwd_str>

-k<key_str>-t<text_str>"""

printstrHelp

defargs(self,argv_ls):

'''''dispatchcommand'''

#printargv_ls

iflen(argv_ls)<=1orlen(argv_ls)>5:

print'Unrecognizedoption'

return

cmd_dic={}

curr_cmd=''

#controlcommand

fori,vinenumerate(argv_ls[1:]):

forjinself._args_dic.items():

#addcommand

ifvinj[1]andj[0]notincmd_dic:

curr_cmd=j[0]

cmd_dic[curr_cmd]=[]

break

else:

#addargv

ifcmd_dic:

cmd_dic[curr_cmd].append(v)

#execcommand

ifcmd_dic:

self.exec_cmd(cmd_dic)

else:

print'Unrecognizedoption'

defexec_cmd(self,cmd_dic):

'''''execcmd'''

iflen(cmd_dic)==2:

if'arg_p'incmd_dicand'arg_k'incmd_dic

andlen(cmd_dic['arg_p'])==1andlen(cmd_dic['arg_k'])==1:

self._clsWork.reset_key(cmd_dic['arg_k'][0])

printself._clsWork.encode(cmd_dic['arg_p'][0])

return

elif'arg_t'incmd_dicand'arg_k'incmd_dic

andlen(cmd_dic['arg_t'])==1andlen(cmd_dic['arg_k'])==1:

self._clsWork.reset_key(cmd_dic['arg_k'][0])

printself._clsWork.decode(cmd_dic['arg_t'][0])

return

self.help()

if__name__=='__main__':

usage=Usage()

usage.args(sys.argv)

㈡ 怎样对 Python 源码加密

代码加密
大概整理了以下几种方法:
编译成pyc文件
使用py2exe将python代码转成window下执行的exe文件
关键代码部分使用c或者c++写,然后在python中调用
用C写一个license,进行license验证
作为一门解释型的语言,加密的难度超级大。下面来简单分析上面的解决方案:
编译成pyc文件几乎跟pyc没有区别,保护力度太低
要是在linux机器上就没法使用,而且这种exe文件也可以被破解的
核心代码部分是计算密集型,用的是pandas,numpy等库,用c重写,简直不可能,工作量太大。
没搞过,不知道………
看来上面的解决方案都是不行的,在stackoverflow上对这个问题也进行了详细的讨论,用我蹩脚的英文来翻译(意译)一下得票率最高的:
“有什么方法来解决这个问题吗?(加密的问题)”没有。任何保护都可以被逆向工程破解。就连DVD机的固件都可以被破解,尽管法律判定其为非法,但是AACS加密密钥还是泄露出来。
因为没有技术的方法可以阻止你的客户看你的代码,你必须用传统的商业方法。
1. 许可证,合约,条款,条件。只要用户签订了这些东西,及时用户可以看见代码,也会有法律约束(不过此建议在中国目前貌似不顶用)
2. 提供巨大的价值。如果你的东西非常好,而且价格很合理,那么用户很难拒绝——没必要浪费时间和金钱去搞逆向工程啥的,因为逆向工程是很费银子的。让你的产品有足够的性价比。
3. 经常性的升级和增加新的功能,使得逆向工程不那么好使。当下一个版本破坏了逆向工程,那么以前的破解就没有意义了。
4. 定制化生产,为不同的客户提供不同的产品。(貌似代价有点高啊)
5. 使用有时间限制的许可证,这会给你带来不好的名声,但是会保证你的软件会停止工作
6. 设计为web service.
代码混淆
既然加密不是一个好方法,那要还是不死心,那就做一个简单的混淆算了,虽然只能”防君子,不防小人“。但是不能就这样把代码暴露出来。
这里推荐一个找了好久的东西: pyobfuscate这个东西在window7中的cmd中貌似总是混淆失败,无奈用了MINGW32,居然搞定了。官方的资料有这样的介绍:
pyobfuscate有几种转化代码的方式,有些可逆,有些不可逆。
移除注释和文档 ( 不可逆)
改变缩进(可逆)
在tokens之间加入空格(一定程度上可逆)
重命名函数,类,和变量(不可逆)
在空白行中加入无效的代码
我没有选择混淆函数名和类名,因为其他地方还要调用呢。下面是我混淆的结果,还挺好看的:
def my_fuction_to_test ( self , start_date , end_date ) :
iiiii11iII1 = self . get_something ( start_date , end_date )
O0o = [ ]
for oO0 in iiiii11iII1 :
if oO0 [ "isOpen" ] == 1 :
IIIi1i1I = { }
OOoOoo00oo = dt . strptime ( oO0 [ 'calendarDate' ] , '%Y-%m-%d' )
IIIi1i1I [ 'day' ] = OOoOoo00oo . strftime ( '%Y%m%d' )
IIIi1i1I [ 'week' ] = oO0 [ 'isWeekEnd' ]
IIIi1i1I [ 'month' ] = oO0 [ 'isMonthEnd' ]
IIIi1i1I [ 'weekday' ] = OOoOoo00oo . weekday ( )
O0o . append ( IIIi1i1I )
iiI11 = pd . DataFrame ( O0o )
return iiI11

㈢ Python简单加密操作

加密是将一拦冲个明文数据,按照指定的算法,运算得到一个其他的可以隐藏真简弯歼实信息的密文数据,这个过程称为加密;处理的算法称为加密算法;用到的关键数据称为密钥。

解密是按照制定的算法和关键数据,将一个密文数据进行逆向运算得到的正确的明文数据的过程

如:用户账号密码存储,此时任何人都不能查看该用户的明文密码

1.原始数据
2.编码(转换为字节数闹碧据)
3.使用算法加密
4.利用盐值更新密文
5.得到加密后的数据

编码:字符串.encode(编码名称)——>字节数据
解码:字节数据.decode(编码名称)——>字符串数据

==========================================

㈣ python文本加密是什么

python文本加密是Python 提供了诸如 hashlib,base64 等便于使用的加密库,我们可以借助异或操作,实现一个简单的文件加密程序。

通过了解异或操作的性质,加密原理就非常清晰了。

首先将文件转换成二进制数,再生成与该二进制数等长的随机密钥,将二进制数与密钥进行异或操作,得到加密后的二进制数。

将加密后的二进制程序与密钥进行异或操作,就得到原二进制数,最后将原二进制数恢复成文本文件。

相关拓展

加密,是以某种特殊的算法改变原有的信息数据,使得未授权的用户即使获得了已加密的信息,但因不知解密的方法,仍然无法了解信息的内容。

加密之所以安全,绝非因不知道加密解密算法方法,而是加密的密钥是绝对的隐藏,流行的RSA和AES加密算法都是完全公开的,一方取得已加密的数据,就算知道加密算法也好,若没有加密的密钥,也不能打开被加密保护的信息。

单单隐蔽加密算法以保护信息,在学界和业界已有相当讨论,一般认为是不够安全的。公开的加密算法是给黑客和加密家长年累月攻击测试,对比隐蔽的加密算法要安全得多。

尽管加密或为了安全目的对信息解码这个概念十分简单,但在这里仍需对其进行解释。数据加密的基本过程包括对称为明文的原来可读信息进行翻译,译成称为密文或密码的代码形式。该过程的逆过程为解密,即将该编码信息转化为其原来的形式的过程。

以上内容参考 网络-加密

㈤ python语言可以加密吗

我们所说的加密方式都是对二进制编码的格式进行加密,对应到python中,则是我们的bytes.
所以当我们在Python中进行加密操作的时候,要确保我们的操作是bytes,否则就会报错.
将字符串和bytes互相转换可以用encode()和decode()方法,如下所示:
注:两位十六进制常常用来显示一个二进制字节.
推荐学习《python教程》。

㈥ py(pyc)源码字节码操作码等方面加壳加压加密的安全系列

py源码安全加密探研系列-基础知识

py源码安全加密探研系列-源码混淆安全加密

py源码安全加密探研系列-cython的.so 安全加密

py源码安全加密探研系列-字节码安全加密

py源码安全加密探研系列-修改解释器(AES安全)

1.c++源码一键混淆

https://mp.weixin.qq.com/mp/appmsgalbum?__biz=MzAxOTg5NjQ1NA==&action=getalbum&album_id=2447582729564389377#wechat_redirect

㈦ python打包是把.py加密码

python打包是把.py加密。根据查询相关资料信息,用行睁pyinstaller--noconsole--key1-D命令。noconsole:打包时不使用控制台。档差岁庆扒key加密:密码为1。D:所有的依赖库独立存放。F:只打包成一个可执行文件。

㈧ py如何实现对文件的加密

给电脑上的文件加密或者文件夹加密,你可以使用超级加密3000。
超级加密3000采用国际上成熟的加密算法和安全快速肢芹的加密方法,可以有效保障数据安全!
具体操作方法:
1下载安装超级加密3000。
2
然后在需要加密的文件上单击鼠标右键选择加密。
3
在弹出的文件加嫌饥脊密窗口中设置文件加密密码就OK了。
超级加密3000的下载地址你可以在网络上搜索超级加密3000,第一芹渗个就是。

㈨ Python程序加密打包

步骤:
1、使用此文程序编译python源程序为pyd
链接: https://www.jianshu.com/p/4465cf9283b6
2、编写入口py文件,调用pyd模块
注意点:
1、由于pyinstaller不会导入pyd程序依赖包,所以需要将pyd程序依赖包在入口py文件中导入一次,避免打包exe时pyd无法使用
2、打包exe后,路径有所变化,pyd中路径需使用绝对路径
3、pyd文件不要写入口调用,if main等,在入口py文件中导包及调用相关函数

优点:脱离python环境,包依赖
缺点:文件较大
步骤:
1、将入口py文件打包为exe可执行程序,会自动导入pyd文件并进行封装
注意点:
1、打包exe后,cmd下运行程序,看是否有错误输出,按提示解决相应问题即可

㈩ 使用python之MD5进行加密

在许多接口,尤其涉及到金额的地方,都需要用加密算法对数据进行加密。像密码、金额之类的,如果不做加密,被篡改数据,公司的损失会很大。

这里主要说MD5加密(即摘要算法),也就是采用哈希算法,将不定长度的内容转化为32位16进制固定长度的内容。前后台都使用这套算法,再将两者的加密数据比对,如果一致说明数据加密正确,否则数据可能出现篡改。

在pyhon里,可以导入hashlib进行加密,如下

方法一:

执行结果如下图:

方法二:

执行结果如下图:

热点内容
网站会员注册源码 发布:2025-02-14 01:09:45 浏览:657
小火山视频密码是什么 发布:2025-02-14 01:09:40 浏览:505
我的世界手机创的服务器电脑能进吗 发布:2025-02-14 01:08:16 浏览:163
eclipseandroid运行 发布:2025-02-14 00:54:57 浏览:897
云服务器安全策略 发布:2025-02-14 00:54:07 浏览:289
小米手机如何更改账号密码 发布:2025-02-14 00:48:48 浏览:572
我的世界如何导出服务器 发布:2025-02-14 00:48:39 浏览:722
工业服务器机箱怎么样 发布:2025-02-14 00:29:15 浏览:86
英朗压缩机 发布:2025-02-14 00:29:12 浏览:678
java门面模式 发布:2025-02-14 00:29:09 浏览:917