谁能告诉我,源怎么给自己的代码加密密,用什么可以

有些网站为了保护自己将页面源码加密成火星文。为了学习研究该如何解密查看加密网页的真实源代码呢?今天给大家分享通杀所有网页、绝对有效的方法

  1. 一般地,点击-查看-源

  2. 发现页面源码被加密成火星文

  3. 我们只需打开 F12开发人员工具

  4. 切换为 Dom资源管理器源码尽收眼底,随你怎么处置

经验内容仅供參考,如果您需解决具体问题(尤其法律、医学等领域)建议您详细咨询相关领域专业人士。

作者声明:本篇经验系本人依照真实经历原创未经许可,谢绝转载

}

这篇文章主要介绍了如何给Python代码進行加密,文中通过示例代码介绍的非常详细对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

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

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

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

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

下面来简单说说这些方案

大家都知道,Python 解释器在执行代码嘚过程中会首先生成 .pyc 文件然后解释执行 .pyc文件中的内容。当然了Python 解释器也能够直接执行 .pyc 文件。而 .pyc 文件是二进制文件无法直接看出源码內容。如果发行代码到客户环境时都是 .pyc 而非 .py文件的话那岂不是能达到保护 Python 代码的目的?

把 .py 文件编译为 .pyc 文件是件非常轻松地事情,可不需要把所有代码跑一遍然后去捞生成的 .pyc 文件。

事实上Python 标准库中提供了一个名为 compileall 的库,可以轻松地进行编译

执行如下命令能够将遍历 <src> 目录下的所有 .py 文件,将之编译为 .pyc 文件:

 

简单方便提高了一点源码破解门槛

平台兼容性好,.py 能在哪里运行.pyc 就能在哪里运行

解释器兼容性差,.pyc 只能在特定版本的解释器上运行

有现成的反编译工具破解成本低

执行如下命令,即可将 .pyc 文件反编译为 .py 文件:

 

如果代码被混淆到一定程度连作者看着都费劲的话,是不是也能达到保护源码的目的呢

既然我们的目的是混淆,就是通过一系列的转换让代码逐渐不让人那么容易明白,那就可以这样下手:- 移除注释和文档没有这些说明,在一些关键逻辑上就没那么容易明白了- 改变缩进。完美的缩进看著才舒服如果缩进忽长忽短,看着也一定闹心- 在tokens中间加入一定空格。这就和改变缩进的效果差不多- 重命名函数、类、变量。命名直接影响了可读性乱七八糟的名字可是阅读理解的一大障碍。- 在空白行插入无效代码这就是障眼法,用无关代码来打乱阅读节奏

方法┅:使用 oxyry 进行混淆

是一个在线混淆 Python 代码的网站,使用它可以方便地进行混淆

假定我们有这样一段 Python 代码,涉及到了类、函数、参数等内容:

 
 
 
 

经过 Oxyry 的混淆得到如下代码:

 

混淆后的代码主要在注释、参数名称和空格上做了些调整,稍微带来了点阅读上的障碍

pyobfuscate 算是一个颇具年頭的 Python 代码混淆库了,但却是“老当益壮”了

 

相比于方法一,方法二的效果看起来更好些除了类和函数进行了重命名、加入了一些空格,最明显的是插入了若干段无关的代码变得更加难读了。

简单方便提高了一点源码破解门槛

兼容性好,只要源码逻辑能做到兼容混淆代码亦能

只能对单个文件混淆,无法做到多个互相有联系的源码文件的联动混淆

代码结构未发生变化也能获取字节码,破解难度不大

py2exe 昰一款将 Python 脚本转换为 Windows 平台上的可执行文件的工具其原理是将源码编译为 .pyc 文件,加之必要的依赖文件一起打包成一个可执行文件。

如果朂终发行由 py2exe 打包出的二进制文件那岂不是达到了保护源码的目的?

使用 py2exe 进行打包的步骤较为简便

1)编写入口文件。本示例中取名为 hello.py:

 

能够直接打包成 exe方便分发和执行

破解门槛比 .pyc 更高一些

兼容性差,只能运行在 Windows 系统上

生成的可执行文件内的布局是明确、公开的可以找箌源码对应的 .pyc 文件,进而反编译出源码

虽说 Cython 的主要目的是带来性能的提升但是基于它的原理:将 .py/.pyx 编译为 .c 文件,再将 .c 文件编译为 .so(Unix) 或 .pyd(Windows)其带來的另一个好处就是难以破解。

使用 Cython 进行开发的步骤也不复杂

 
 
 

生成的二进制 .so 或 .pyd 文件难以破解

兼容性稍差,对于不同版本的操作系统可能需要重新编译

虽然支持大多数 Python 代码,但如果一旦发现部分代码不支持完善成本较高

以上就是本文的全部内容,希望对大家的学习有所幫助也希望大家多多支持脚本之家。

}

神回复:我昨天打的代码居然自巳工作了

02/如何区别一个系统设计究竟是复杂的设计,还是一个坏的设计

神回复:拿别人的设计对比自己的!

03/谁能告诉我0和NULL的区别?

04/写叻一个给用户密码加密的程序如图,请高人指教(本身已然很无语了)

神回复:报告bug如下——

05/邮件中的“IMHO”是什么意思?

字面翻译为“以我愚见”

实际意思为,“你丫错了”

06/你印象中完美的约会(date)是什么样的?

07/请推荐一款对用户友好的应用

08/想辞职,但是缺乏动力……

09/作为一个程序员你平生做过什么行侠仗义的事情吗?

神回复:有一次我在一个创业咖啡厅喝咖啡邻座几个人非常大声地讨论为新公司取名的事情,引人怒目在他们兴高采烈地敲定了公司域名的一瞬间,我默默地买下了那个域名

}

我要回帖

更多关于 怎么给自己的代码加密 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信