Python 使用 pyc 解决明文密钥问题记录

 更新时间:2023年07月06日 14:21:26   作者:Bing@DBA  
pyc 是 Python 经过 compile 后的文件类型,一段 Python 代码执行前会先将 .py 文件编译成 .pyc 文件它是一种字节码 byte code,然后由 Python 虚拟机执行,这篇文章主要介绍了Python使用pyc解决明文密钥问题,需要的朋友可以参考下

前言

写代码过程中,可能遇到一些敏感信息不想明文暴露在代码中的情况,本篇文章介绍使用 pyc 解决明文密钥问题。

1. pyc 介绍

pyc 是 Python 经过 compile 后的文件类型,一段 Python 代码执行前会先将 .py 文件编译成 .pyc 文件它是一种字节码 byte code,然后由 Python 虚拟机执行。

相对于 .py 来讲,.pyc 对源代码有一定保护作用,提高了模块加载速度和跨平台性,但代码执行速度未得到提高。

在这里插入图片描述

2. py 代码编译

2.1 使用命令行编译

此时目录下有一个 hello.py 文件,代码内容是打印圆周率:

>>>># ls
pi.py

执行下 pi.py

[root@db4 test]# python3 pi.py 
3.14159265359

编译:

python3 -m py_compile pi.py 
[root@db4 test]# ls
pi.py  __pycache__

编译完成后会在当前目录生成 pycache 目录,里面保存的就是编译后的文件。

2.2 使用代码编译

# 目录下所有 py 文件进行编译
import compileall
compileall.compile_dir('./')
# 单文件编译
import py_compile
py_compile.compile('pi.py')

cat 看的话就是一堆乱码:

�(�d&�@sddlZejZee�dS)�N)ZmathZpi�val�print�rr�pi.py<module>

3. 避免名为密钥案例

3.1 创建密钥存储代码文件

创建 get_token.py 文件,创建 get_token_code 函数 return 密钥:

def get_token_code():
    return '727241fa-1ba7-11ee-9601-fab7dbe5cd00'

3.2 编译密钥代码

编译完成后会存储到 pycache 目标中:

python3 -m py_compile get_token.py 

进入 pycache 目标,将 get_token.cpython-39.pyc 改名为 get_token.pyc 然后 mv 到代码目录。

mv get_token.cpython-39.pyc ../get_token.pyc

然后删除 get_token.py 文件。

3.3 调用密钥代码

此时密钥存储在 get_token.pyc 文件,创建新代码文件调用它:

from get_token import get_token_code
print(get_token_code())

打印结果:

727241fa-1ba7-11ee-9601-fab7dbe5cd00

到此这篇关于Python 使用 pyc 解决明文密钥问题的文章就介绍到这了,更多相关Python明文密钥内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 使用Python except捕获所有异常的使用场景

    使用Python except捕获所有异常的使用场景

    在Python编程中,异常处理是保证程序健壮性的核心机制之一,通过try-except结构,开发者可以优雅地处理运行时错误,避免程序因意外中断而崩溃,其中,except捕获所有异常的写法在特定场景下被频繁使用,本文将深入探讨其适用场景与注意事项,需要的朋友可以参考下
    2026-06-06
  • Python异步编程从协程到异步框架实践指南

    Python异步编程从协程到异步框架实践指南

    Python的异步编程提供了一种更轻量级的并发方案,能够在单线程内实现高并发,大幅提升I/O密集型应用的性能,本文将从协程的基础概念讲起,深入讲解asyncio的核心原理和实战应用,帮助读者建立完整的异步编程知识体系
    2026-05-05
  • 基于Python打造一个WiFi命令行安全审计工具

    基于Python打造一个WiFi命令行安全审计工具

    在当今数字化时代,无线WiFi网络已成为日常生活中不可或缺的基础设施,本文将基于Python pywifi库开发专业级无线安全评估工具,感兴趣的小伙伴可以跟随小编一起学习一下
    2026-03-03
  • Python Prometheus接口揭秘数据科学新技巧

    Python Prometheus接口揭秘数据科学新技巧

    本篇文章将分享Prometheus API的基本概念到PromQL查询语言的应用,再到如何通过Python与Prometheus API进行无缝交互,通过丰富的示例代码和详细的讲解,将解锁使用Python进行实时监控的奇妙世界,为读者打开更广阔的数据分析视野
    2024-01-01
  • python opencv实现运动检测

    python opencv实现运动检测

    这篇文章主要为大家详细介绍了python opencv实现运动检测,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-07-07
  • Python 中的字符串基础与应用小结

    Python 中的字符串基础与应用小结

    在Python中,字符串可以用单引号或双引号括起来,'hello' 与 "hello" 是相同的,这篇文章主要介绍了Python 中的字符串基础与应用,需要的朋友可以参考下
    2023-09-09
  • python中的实例方法、静态方法、类方法、类变量和实例变量浅析

    python中的实例方法、静态方法、类方法、类变量和实例变量浅析

    这篇文章主要介绍了python中的实例方法、静态方法、类方法、类变量和实例变量浅析,需要的朋友可以参考下
    2014-04-04
  • Python如何将bmp格式的图片批量转成jpg

    Python如何将bmp格式的图片批量转成jpg

    这篇文章主要介绍了Python如何将bmp格式的图片批量转成jpg问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • python顺序的读取文件夹下名称有序的文件方法

    python顺序的读取文件夹下名称有序的文件方法

    今天小编就为大家分享一篇python顺序的读取文件夹下名称有序的文件方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07
  • Python定时库APScheduler的原理以及用法示例

    Python定时库APScheduler的原理以及用法示例

    APScheduler的全称是Advanced Python Scheduler,它是一个轻量级的 Python 定时任务调度框架,下面这篇文章主要给大家介绍了关于Python定时库APScheduler的原理以及用法的相关资料,需要的朋友可以参考下
    2021-12-12

最新评论