pythonencrypt
可以加密。 python 代码加密甚至可以做到比用汇编手写混淆,用 c 手写混淆更加难以解密。具体做法略复杂仅简单说个过程。
第一级别是源码级别的混淆,用 ast 和 astor ,再自己手写一个混淆器,三五百行的脚本直接混淆到几万行,整个文件面目全非,基本可以做到就算直接放脚本给你拿去逆,除非你再写出来一个逆向前面的混淆算法的脚本来逆(在熟悉 python 的情况下需要花几天,且不说需要了解程序构造原理),手动去调试脚本几乎达到不可行的地步(话费时间再乘以 2 )
第二级别是个性化定制 pyinstaller , pyinstaller 会打包所有需要的库,将脚本也包含进打包的 exe ,但是, pyinstaller 有一个 stub ,相当于一个启动器,需要由这个启动器来解密脚本和导入模块,外面有直接导出脚本的工具,但是那是针对 pyinstaller 自带的启动器做的,完全可以自己修改这个启动器再编译,这样逆向者就必须手动调试找到 main 模块。配合第一级别加密,呵呵,中国就算是最顶尖的逆向专家也要花个一两周,来破解我们的程序逻辑了,就我所知,实际上国内对于 py 程序的逆向研究不多。
第三级别是再上一层,将 py 翻译为 c 再直接编译 c 为 dll ,配合第一阶段先混淆再转 c 再编译,在第一步混淆之后,会产生非常多垃圾(中间层)函数,这些中间层函数在 c 这里会和 py 解释器互相调用,脚本和二进制之间交叉运行,本身混淆之后的源码就极难复原,再混合这一层,想逆向,难。
第四级别是利用 py 的动态特性,绝大多数逆向者都是 c ,汇编出身,对于程序的第一直觉就是,程序就是一条一条的指令,后一条指令必然在这一条指令后面,然而, py 的动态特性可以让代码逻辑根本就不在程序里面,这一点不想多讲,涉及到我一个项目里的深度加密。
第五级别,数学做墙。了解过比特币原理的知道要想用挖比特币就得提供大量算力去帮网络计算 hash ,这个成为 pow ,那么既然已经采用 py 了估计已经不考虑太多 cpu 利用率了,那就可以采用 pow (还有其他的手段)确保程序运行时拥有大量算力,如果程序被单步调试,呵呵,一秒钟你也跑不出来几个 hash 直接拉黑这个 ip (这个说法可能比较难理解,因为我第四层的加密没有说明,不过意思就是拒绝执行就对了)
② 请问我要用python写对称加密算法,安装pycrypto报错(python3.4)
错误,Microsoft Visual C++ 10.0未安装
貌似是VS2008吧。
③ 学了python能破解加密狗吗
硬件加密锁,俗程“加密狗”,对于加密狗的破解大致可以分为三种方法,一种是通过硬件克隆或者复制,一种是通过SoftICE等Debug工具调试跟踪解密,一种是通过编写拦截程序修改软件和加密狗之间的通讯。
④ python写的程序能加密吗
你可以安装pyinstaller,编译成可执行文件,大小会比原文件大。其他方法也有。但是pyinstaller简单一点.
用法:先安装pyinstaller。按照python版本安装:
pip install pyinstaller
安装好之后:pyinstaller -F python文件。
编译好了文件在./dist/下,直接用就行
⑤ Python问题,AES加密,当需要加密的字符串不足16位时,试编写代码用空格来补充位置
Python问题,AES加密,当需要加密的字符串不足
⑥ python语言可以加密吗
我们所说的加密方式都是对二进制编码的格式进行加密,对应到python中,则是我们的bytes.
所以当我们在Python中进行加密操作的时候,要确保我们的操作是bytes,否则就会报错.
将字符串和bytes互相转换可以用encode()和decode()方法,如下所示:
注:两位十六进制常常用来显示一个二进制字节.
推荐学习《python教程》。
⑦ python文本加密是什么
python文本加密是Python 提供了诸如 hashlib,base64 等便于使用的加密库,我们可以借助异或操作,实现一个简单的文件加密程序。
通过了解异或操作的性质,加密原理就非常清晰了。
首先将文件转换成二进制数,再生成与该二进制数等长的随机密钥,将二进制数与密钥进行异或操作,得到加密后的二进制数。
将加密后的二进制程序与密钥进行异或操作,就得到原二进制数,最后将原二进制数恢复成文本文件。
相关拓展
加密,是以某种特殊的算法改变原有的信息数据,使得未授权的用户即使获得了已加密的信息,但因不知解密的方法,仍然无法了解信息的内容。
加密之所以安全,绝非因不知道加密解密算法方法,而是加密的密钥是绝对的隐藏,流行的RSA和AES加密算法都是完全公开的,一方取得已加密的数据,就算知道加密算法也好,若没有加密的密钥,也不能打开被加密保护的信息。
单单隐蔽加密算法以保护信息,在学界和业界已有相当讨论,一般认为是不够安全的。公开的加密算法是给黑客和加密家长年累月攻击测试,对比隐蔽的加密算法要安全得多。
尽管加密或为了安全目的对信息解码这个概念十分简单,但在这里仍需对其进行解释。数据加密的基本过程包括对称为明文的原来可读信息进行翻译,译成称为密文或密码的代码形式。该过程的逆过程为解密,即将该编码信息转化为其原来的形式的过程。
以上内容参考 网络-加密
⑧ Python加密程序
alp=''
defnum2alp(c):
a=alp[c]
return(a)
defalp2num(d):
ifd!='':
return((ord(d)-97)%37)
else:
return36
defenvVigenere(key,plaintext):
m=len(plaintext)
n=len(key)
etext=""
foriinrange(m):
p=plaintext[i]
k=key[i%n]
num1=alp2num(p)
num2=alp2num(k)
num3=(num1+num2)%37
f=num2alp(num3)
etext=etext+f
return(etext)
print(envVigenere('lemon','attackatdawn'))
试试这个,我发现你的问题有两个:
alp2num
函数有问题,应该再进行下mod37,并且应当对空格做特殊处理key没有使用正确使用
⑨ Python 加密程序
#coding=utf-8
defencode_key_text(key,text):
alp=''
num_key=[alp.find(i)foriinkey]
num_text=[alp.find(i)foriintext]
iflen(num_key)<len(num_text):
num_long,num_short=num_text,num_key
else:
num_long,num_short=num_key,num_text
num_encode=[(num_short[i%len(num_short)]+num_long[i])%(len(alp))foriinxrange(len(num_long))]
printnum_encode
return''.join([alp[i]foriinnum_encode])
if__name__=="__main__":
key='lemon'
text='attackatdawn'
printencode_key_text(key,text)
当练手了,感兴趣可以关注我的python课程
⑩ 如何在python加密自己的密码
加密有很多种加密方式,常用的加密是md5加密,给你写个例子
importhashlib
defmd5(str):
m=hashlib.md5()
m.update(str.encode("utf8"))
print(m.hexdigest())
returnm.hexdigest()
defmd5GBK(str1):
m=hashlib.md5(str1.encode(encoding='gb2312'))
print(m.hexdigest())
returnm.hexdigest()
md5('hello')
md5GBK('你好')