python:代码加密流水线

通过以下五步,将python代码加密,且只能在指定电脑上运行。

三层加密。只加密核心函数。将参数暴露在外。都可以实现。


文章目录

      • 一、获取机器码
      • 二、加密机器码
      • 三、将加密机器码写入ism函数中
      • 四、加密代码(可有可无)
          • 1.使用[https://pyob.oxyry.com/](https://pyob.oxyry.com/)加密。
          • 2.使用py_compile加密
      • 五、将py文件打包成pyc文件


一、获取机器码

按下Win + R,输入 cmd,然后按Enter。

在命令提示符中,输入以下命令以获取计算机的硬件序列号:

wmic bios get serialnumber

python:代码加密流水线_第1张图片

二、加密机器码

示例:
原始机器码输入:‘BRRWQZ8’
加密机器码输出:‘QlJDDFFSMw==’

import base64
# 要加密的字符串
original_string = 'BRRWQZ8'
# 编码(加密)字符串
encoded_bytes = base64.b64encode(original_string.encode('utf-8'))
encoded_string = encoded_bytes.decode('utf-8')
print(f'加密后的字符串: {encoded_string}')
# 解码(解密)字符串
decoded_bytes = base64.b64decode(encoded_string)
decoded_string = decoded_bytes.decode('utf-8')
print(f'解密后的字符串: {decoded_string}')

三、将加密机器码写入ism函数中

import wmi 
import base64

def ism():
    c = wmi.WMI()
    serial_number = None
    for item in c.Win32_BIOS():
        serial_number = item.SerialNumber
    encoded_string = 'QlJDDFFSMw=='
    decoded_bytes = base64.b64decode(encoded_string)
    decoded_string = decoded_bytes.decode('utf-8')
    if serial_number == decoded_string:
        return True
    else:
        return False
        
def main(value):
	if ism():
	    ... ...
	    return result
	else:
	    return None

if __name__ =="__main__":
	value = ... ...
	main(value)

四、加密代码(可有可无)

可有可无,因为最后代码会全部打包成pyc文件。

1.使用https://pyob.oxyry.com/加密。

打开网站,把代码复制进去,右侧自动出现加密代码,加密的代码在python编译器中一样可以直接运行。

在这里插入图片描述

2.使用py_compile加密

五、将py文件打包成pyc文件

打包的时候,可以只打包函数部分,把参数留在外面,留在外面的代码照例是py文件,打包的pyc。py文件可以直接引用pyc文件,pyc的文件名必须是‘test.pyc’格式,要不然识别不到。

import py_compile

py_compile.compile('rsshare.py')

你可能感兴趣的:(python,python,开发语言)