python 加密_浅谈几种Python源代码加密技术

本文探讨了几种Python源代码加密技术,包括生成pyc文件、代码混淆和打包成exe。虽然pyc文件可以反编译,但混淆后的代码难以理解。推荐方法是结合函数混淆和pyc编译,或在打包为exe后加壳,以增强代码保护。
摘要由CSDN通过智能技术生成

5f3dac754e9971fe5e5038ec7fe22d7d.gif

随着Python近年的流行,很多开发者选择用Python作为自己首选的开发语言,其简洁的语法和轻量的运行方式受到越来越多开发者的喜爱,但是对于一些个人开发者而言,某些不想开源的程序使用Python开发后很难保证其源代码不被他人剽窃,今天作者就和大家说说几种流行的Python代码加密方式,分析各种利弊并给大家推荐一下最佳的Python代码加密方案,今天主要的对象是基于Python3.X开发的应用程序(实测这些方法在2.x版本中也是可以使用的)

生成pyc文件发布

简介

pyc文件是一种经py文件编译后的二进制文件,他可以跨平台在Python虚拟机中运行,pyc文件打开是无法看到我们正常的源码的,例如这样:

源代码:

f940f7ba4a22f027a550e0174d1ec8f5.png

编译成的pyc文件:

4c66aed2f6fc703333c66fecf980e680.png

可以看到辨识度基本为0

方法

一般一个项目的代码会有多个Python文件,我们需要批量生成pyc文件,这里可以使用compileall模块,我这里的示例项目是在E盘下code文件夹中,生成代码为:

import compileall

compileall.compile_dir(r'E:/code')

5f2f96eaca04d3a16b9448e01e9b3ac1.png

执行完后会发现项目下多了一个 pycache 文件夹,打开后就是编译后的pyc文件

1069cb9511ee19a611c151adb2fa7069.png

代码函数变量混淆

这种加密方式类似于PHP的变量混淆加密,通过奇特的变量命名方式使代码难以被读取和理解,这种混淆非常恶心,有时源代码就在你眼前,你却无法知道该段代码的含义,令人很头疼

经过一番探索,我找到了一个在线进行混淆的站点,下个月计划自己写一个混淆代码的程序,届时也会第一时间开源分享给大家

神奇的站点:http://pyob.oxyry.com/

拿我写的一个函数作为例子(特意找了一个长的,方便大家更直观看到差别)

源代码:

def get_flag(get_flag_cmd):

list = []

global flag

print("DEMO:http://10.10.10.10/index.php?flag= yml-flag &name=666")

submit_flag_url = input("请输入提交flag的链接(flag用yml-flag替换,两边加空格):")

with open("data/flagshell.txt", 'r') as f:

line = f.readline().strip()

while line:

list.append(line)</

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值