python RSA 加密及解密
2023-02-04

TLDR

一般大家运行 python,都是把 py 源码复制到目标环境中直接使用 python main.py 运行。这就带来一个问题,有些敏感信息也会暴漏到目标环境中,比如数据库连接字符串。那有没有什么办法解决这个问题?以下是我想想到的办法(欢迎补充):

  1. 编译 python 代码。
    简单点的编译方式:使用 python -O -m compileall -b . 编译成 *.pyc 文件( *.pyc 文件其实也是可以反编译的,只不过麻烦了点 😂)。具体可参考 这篇文章
    复杂一点,可以编译成 *.pyd*.pyo 文件。这里就不展开了(跑题)

  2. 使用 RSA 加密敏感信息。
    查看源码请移步:RSA encryption and decryption

RSA 为什么能单向加密和解密?简单来讲,就是数学魔法吧。有兴趣自行查阅相关文章。我们只需要知道使用方法就行:
① 生成公钥私钥对
② 使用公钥加密信息
③ 使用私钥解密信息

因此,想要加密,只要公钥和需要加密的信息就行;想要解密,则只要私钥和需要解密的信息即可。所以,我们在目标环境中上传加密后的信息以及私钥就行。

当然,为了双重保险,一般都会在加密/解密过程中加入所谓的“盐”,即一些运行时变量,确保某些“中间人”获取了加密后的信息以及私钥后直接解密得到原始密码。

本文链接:
content_copy https://zxs66.github.io/2023/02/04/python-rsa-encryption-and-decryption/