ANSA二次开发 - 加密py文件为pyd格式



  有时候我们希望保护所开发的ANSA二次开发python代码,需要对明文代码进行加密处理。而python是一门解释性语言,解释器可以直接阅读和执行代码。这意味着其源码无需编译即可运行,因此,代码常以人类可读的格式来显示。

  为了保证代码的安全,需要将代码编译为仅机器可读的格式。app开发者可以使用加密技术将代码编译为二进制格式。

加密过程

  为了编译代码,开发者需要在ansa或meta脚本编辑器内读取脚本。在菜单Project下的Compile选项可以输出代码为二进制的pyd扩展文件。
在这里插入图片描述
  当点击Compile按钮,一个额外的选项将出现,提醒用户选择是否以Pack Compilation Dependencies方式编译。
在这里插入图片描述

  如果用户没有勾选复选框,则编译过程将不考虑任何其他包的依赖,pyd文件仅仅包含主文件的代码。

  另一方面,如果用户勾选按钮,pyd文件将不仅包含主文件的代码,还包含其他用ansa.ImportCode函数导入的模块。

注意:
  任何通过系统路径(sys.path)模块都不能导入到最终的二进制文件中,它通常被考虑为一个外部的依赖。

  如下实例:

import ansa
import sys
import numpy

sys.path.append('my_functions')
import my_functions
from my_functions import *

ansa.ImportCode('my_library')
from my_library import shell_normal_vector

def foo():
    pass

  在上面的实例中,sys和numpy库不能被导入。my_functions库也不能被导入。因为其是设置在系统路径中的。而且,所有4个库对于app都是外部库依赖 。如果用户选择Pack Compilation Dependencies选项,my_library模块将在最终的二进制文件中导入。

CompileScript加密函数

  加密脚本可以采用ansa.CompileScript函数来进行批处理。

函数名称

   CompileScript - 从给定的脚本路径创建一个已编译的(pyb/bsx)文件。

函数语法
ansa.CompileScript(fileInput, fileOutput, moduleName, mode)
功能描述

   从给定的脚本路径创建一个已编译的(pyb/bsx)文件。

函数参数
  • [必填参数]] fileInput - 要编译脚本的路径字符串。

  • [必填参数] fileOutput - 创建的编译文件的目标路径字符串。

  • [必填参数] moduleName - 模块名字符串。

  • [可选参数] mode(布尔值) - 仅对Python脚本有效。

  • 在编译文件中包含脚本导入模块的选项。(仅当使用ansa.ImportCode功能导入时有效)

    • True, 在已编译脚本中包含依赖项。(默认)

    • False, 其他。

返回类型

   整型

返回值

   返回1表示成功,0表示失败

示例
import ansa

def main():
    ansa.CompileScript("/home/user/scripts/some_script.py","/home/user/scripts/some_script.pyb","moduleName")

if __name__ == '__main__':
    main()

警告

  本文提供的加密方法是BETA CAE Systems开发的。不要和python编译器自动生成的字节代码文件pyc混淆。


  扫描下方二维码关注我的微信公众号 - CAE软件二次开发Lab,阅读更多精彩内容!

CAE软件二次开发Lab
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值