当前位置:首页 » 编程语言 » python加密脚本

python加密脚本

发布时间: 2022-05-29 02:02:45

1. 怎样对 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

2. 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'))


试试这个,我发现你的问题有两个:

  1. alp2num
    函数有问题,应该再进行下mod37,并且应当对空格做特殊处理

  2. key没有使用正确使用


3. Python中的如何给一个字符串加密

import rsa rsaPublickey = int(pubkey, 16) key = rsa.PublicKey(rsaPublickey, 65537) #创建公钥 message = str(servertime) + '\t' + str(nonce) + '\n' + str(password) #拼接明文js加密文件中得到 passwd = rsa.encrypt(message, key) #加密 passwd = binascii.b2a_hex(passwd) #将加密信息转换为16进制。 return passwd

4. 为什么python不可加密

可以加密。 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 (这个说法可能比较难理解,因为我第四层的加密没有说明,不过意思就是拒绝执行就对了)

5. python如何实现rsa加密的示例代码分享

import rsakey = rsa.newkeys(3000)#生成随机秘钥privateKey = key[1]#私钥publicKey = key[0]#公钥message ='sanxi Now is better than never.'print('Before encrypted:',message)message = message.encode()cryptedMessage = rsa.encrypt(message, publicKey)print('After encrypted:\n',cryptedMessage)message = rsa.decrypt(cryptedMessage, privateKey)message = message.decode()print('After decrypted:',message)

6. Python编程实现加密解密读取文件

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

1、对python转exe加壳

下载最新版VirboxProtector加壳工具,使用加壳工具直接对demo.exe进行加壳操作

2、对.py/.pyc加密

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

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

安全技术:

l虚拟机外壳:精锐5的外壳保护工具,创新性的引入了预分析和自动优化引擎,有效的解决了虚拟化保护代码时的安全性和性能平衡问题。

l碎片代码执行:利用自身成熟的外壳中的代码提取技术,抽取大量、大段代码,加密混淆后在安全环境中执行,最大程度上减少加密锁底层技术和功能的依赖,同时大量大段地移植又保证了更高的安全性。

lVirbox加密编译引擎:集编译、混淆等安全功能于一身,由于在编译阶段介入,可优化空间是普遍虚拟化技术无法比拟的,对代码、变量的混淆程度也有了根本的提升。

l反黑引擎:内置R0级核心态反黑引擎,基于黑客行为特征 的(反黑数据库)反制手段。精准打击调试、注入、内存修改等黑客行为,由被动挨打到主动防护。

加密效果:

加密之前

以pyinstall 的打包方式为例,使用pyinstxtractor.py文件对log_322.exe进行反编译,执行后会生成log_322.exe_extracted文件夹,文件夹内会生成pyc文件。

成功之后会在同目录下生成一个文件夹

7. python文本加密是什么

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

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

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

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

相关拓展

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

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

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

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

以上内容参考 网络-加密

8. python脚本怎样运行怎样运行python 破解加密密码

首先python也是需要一个runtime环境的,就是你需要到python网站上下载一个,分为2.6版本和3.0版本,你可以都下载安装运行下你的脚本。
关于破解加密密码,我不太能理解你的意思,如果是有密文而没有明文的话,必须要知道对应的加密方式才行。
如果只是破解密码的话,其实就是获取输入框之类的概念,买本关于黑客的书看看吧

9. python 如何保密源代码

python 如何保密源代码?

相关推荐:《Python教程》

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

1、对 python转exe加密,下载最新版Virbox Protector加密工具,使用加密工具直接对demo.exe进行加密操作。

2、对.py/.pyc加密。

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

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

热点内容
服务器ip转载 发布:2025-02-12 05:19:12 浏览:296
oraclesql插入数据 发布:2025-02-12 05:19:05 浏览:918
stl源码剖析笔记 发布:2025-02-12 05:01:51 浏览:589
教务系统web服务器搭建 发布:2025-02-12 05:01:17 浏览:98
全国dns服务器地址大全 发布:2025-02-12 05:01:13 浏览:683
安卓什么软件能拍到月亮 发布:2025-02-12 04:59:42 浏览:782
手机卡忘记服务密码怎么办 发布:2025-02-12 04:59:10 浏览:374
如何让助理服务器可以被远程 发布:2025-02-12 04:47:11 浏览:770
存储空间不足但 发布:2025-02-12 04:46:27 浏览:278
树莓派编程板 发布:2025-02-12 04:41:45 浏览:909