运行 使用 RSA 或 AES 加密的 python 加密代码

Running encrypted python code using RSA or AES encryption

当我在做一个项目时,出现了代码混淆的话题,因此,是否可以使用 RSA 或 AES 加密 python 代码,然后在另一端对其进行解码运行 呢?如果可能的话,你会怎么做?我知道您可以使用 Base64 或 XOR 来混淆代码,但使用 AES 或 RSA 将是一个有趣的应用程序。对于可能知道如何做的任何人来说,这只是一个通用问题。我只是想从 A 点加密一段代码,将其发送到 B 点,在 B 点解密,然后 运行 在本地使用 AES 或 RSA。可以通过任何方式发送,只要代码本身是加密的且不可读的。

是的,这是很有可能的,但需要一些设置才能工作。

首先,Base64 是一种编码器,用于将数据从 binary/bytes 编码为受限的 ascii/utf 子集,通常通过 http 进行传输。它并不是真正的混淆器,更像是二进制数据的打包器。

这就是它工作所需要的。

  1. A点和B点都有的预共享密钥。此密钥不能与代码一起传输,因为任何获得加密代码的人也将获得解密它的密钥。

  2. 需要一个未加密的 code/program 允许您插入该预共享密钥以用于解密发送的加密代码。不能将密钥硬编码到解密器中,因为任何拥有解密器的人现在都可以解密代码,而且如果密钥泄露,您将不得不重新发送解密器以使用不同的密钥。

  3. 解密后,“解密器”可以将该代码保存到一个文件中,供您使用控制台命令 运行 或 运行 代码本身,或者如果它是 python 程序,您可以调用 eval 或使用 importlib 导入该代码并调用其中的函数。 警告:eval 已知是危险的,因为它会执行它读取的任何代码。如果您将 eval 与您不信任的代码一起使用,它可以下载病毒或从您的计算机或其他任何东西中获取信息。不要 运行 不受信任的代码。

AES 和 RSA 也有区别。一种是对称密码,另一种是非对称密码。两者都可以满足您的需求,但它们需要不同的东西来进行加密和解密。一个对两者使用一个密钥,而另一个使用一个用于加密,一个用于解密。所以要考虑一下。