前言

去年11月在PyCon China 2018 杭州站分享了 Python 源码加密,讲述了如何通过修改 Python 解释器达到加解密 Python 代码的目的。然而因为笔者拖延症发作,一直没有及时整理成文字版,现在终于战胜了它,才有了本文。

本文将首先介绍下现有源码加密方案的思路、方法、优点与不足,进而介绍如何通过定制 Python 解释器来达到更好地加解密源码的目的。

现有加密方案

由于 Python 的动态特性和开源特点,导致 Python 代码很难做到很好的加密。社区中的一些声音认为这样的限制是事实,应该通过法律手段而不是加密源码达到商业保护的目的;而还有一些声音则是不论如何都希望能有一种手段来加密。于是乎,人们想出了各种或加密、或混淆的方案,借此来达到保护源码的目的。

常见的源码保护手段有如下几种:

  • 发行 .pyc 文件
  • 代码混淆
  • 使用 py2exe
  • 使用 Cython

下面来简单说说这些方案。

发行 .pyc 文件

思路

大家都知道,Python 解释器在执行代码的过程中会首先生成 .pyc 文件,然后解释执行 .pyc 文件中的内容。当然了,Python 解释器也能够直接执行 .pyc 文件。而 .pyc 文件是二进制文件,无法直接看出源码内容

如何加密你的 Python 代码 —— 转相关推荐

  1. base64原理及加密C、Python代码

    Base64会使用一串固定编码,其标准为: ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ 这称为base64编码表, ...

  2. python代码如何加密

    Python优点很多,比如简单易学,代码量少,能做的事很多等等,和其他语言一样,Pyhton也有一些不可掩盖的缺点,版本不兼容,运行效率不高等等. 其中一个缺点,让不少开发者头疼不已,由于Python ...

  3. python代码的几种常见加密方式

    2022年6月29日10:40:53 文章目录 Python代码加密 1.发行.pyc文件 2.代码混淆 3.生成exe可执行文件 4..py文件转化为.so文件 5.附加运行辅助包文件 几种加密方式 ...

  4. 加密Python代码的5种方法

    Python越来越热门了,2022年1月编程语言排行榜上挤进第一. Python优点很多,比如简单易学,代码量少,能做的事很多等等,和其他语言一样,Python也有一些不可掩盖的缺点,版本不兼容,运行 ...

  5. 如何保护你的 Python 代码—— 定制 Python 解释器

    0 前言 考虑前文所述的几个方案,均是从源码的加工入手,或多或少都有些不足.假设我们从解释器的改造入手,会不会能够更好的保护代码呢? 由于发行商业 Python 程序到客户环境时通常会包含一个 Pyt ...

  6. Python代码加密混淆

    python作为一种解释型语言,源代码加密本身比较困难.但有时候我们在发布一款python产品时又必须考虑到代码的加密性,以避免源代码泄露.为此,我查阅了一些资料,研究了几种python代码加密的常见 ...

  7. Python 代码混淆和加密技术

    动机 Python进行商业开发时, 需要有一定的安全意识, 为了不被轻易的逆向. 混淆和加密就有所必要了. 混淆 为了增加代码阅读的难度, 源代码的混淆非常必要, 一个在线的Python代码混淆网站. ...

  8. python代码加密cython_利用Cython对python代码进行加密

    利用Cython对python代码进行加密 Cython是属于PYTHON的超集,他首先会将PYTHON代码转化成C语言代码,然后通过c编译器生成可执行文件.优势:资源丰富,适合快速开发.翻译成C后速 ...

  9. python代码加密解密_在python中加密 – 在Javascript中解密

    您的Python代码和CryptoJS代码存在许多问题: >您使用随机IV加密Python中的一些明文.如果要检索该明文,则需要在解密期间使用相同的IV.没有IV,明文就无法恢复.通常,IV只是 ...

最新文章

  1. linux 配置tensorflow 全过程记录
  2. VS Code阅读Android源码
  3. python点名代码_基于python tkinter的点名小程序功能的实例代码
  4. 位运算实现一些小算法
  5. Python面试题总结(8)--操作类
  6. jetty;linux 目录结构
  7. ​OCO订单(委托)
  8. word中编辑公式及公式编号的对齐设置
  9. vins 解读_VINS 中的 IMU 预积分推导和代码解读
  10. Linux Fedora 15 安装 Atheros AR9285 无线网卡驱动
  11. 思科实验3.数据链路层:生成树配置
  12. log公式如何用计算机,log计算-计算器怎么算log,如何使用科学计算器中的对数log...
  13. android.view.WindowManager$BadTokenException: Unable to add window android.view.ViewRootImpl$W@
  14. Java20:NullPointerException
  15. 软件测试【网络经典面试题】面经分享
  16. html使背景图片毛玻璃效果,vue实现毛玻璃背景图片效果
  17. 惠普103a打印机芯片清零_惠普M104a打印机的粉盒CF218A,芯片怎么取下来啊
  18. HIVE:窗口函数,用sql语句查询MySQL安装路径和版本
  19. 【算法训练营学习笔记-Week01】数组和链表的比较以及LeetCode的做题反思
  20. Scrum板与Kanban如何抉择?敏捷工具:xsqixhs板与按照ffgwtsmksy

热门文章

  1. linux下开源的字体工具FontForge
  2. J - Cardinal Adjacencies
  3. CVTE硬件、电源工程师技术一面+技术二面
  4. 关于电脑报合订本的一点感言
  5. K-Touch/天语U83t root教程_方法
  6. Android 哪个方向好,方向定位指南针(指北针)哪个好?最好用的手机指南针软件推荐...
  7. H - Log Concave Sequences —— 矩阵快速幂
  8. 中首清算|软银集团科技股投资损失13亿美元
  9. 浅析不良资产商业性债转股法律相关问题
  10. 正则表达式 核对input内容,手机号码、中文姓名、车牌号