【技术实现步骤摘要】
数据加、解密方法及计算机存储介质
[0001]本申请实施例涉及计算机
,尤其涉及一种数据加、解密方法及计算机存储介质。
技术介绍
[0002]脚本语言也即动态语言,是一种解释型编程语言,也称动态解释型语言。动态解释型语言用来控制软件应用程序,其脚本通常以文本保存,只在被调用时进行解释或编译。并且,具有动态代码、简化开发和部署、易于集成和使用等特点。
[0003]以动态解释型语言中的Python语言为例,其易用性较高,在诸如数据预处理、深度学习领域、科学计算领域、服务器软件等领域都被广泛使用。在此情况下,如何对这一类型的语言进行代码安全保护成为近年来的热门问题。在目前的一种保护方案中,对由该种语言实现的程序代码在代码层级做代码混淆,以进行安全保护。但是,代码混淆无法混淆Python的关键字,所以容易被token词法分析等方式进行混淆解析,或者直接进行静态分析跳过关键步骤,导致无法进行真正的保护。
[0004]因此,如何对这类动态解释型语言进行有效的代码保护,成为亟待解决的问题。
技术实现思路
/>[0005]有鉴本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种数据加密方法,包括:获取待加密的动态解释型语言代码及所述代码对应的语法树;对所述语法树进行代码混淆,获得初始加密语法树;对所述初始加密语法树进行针对节点访问的第一加密处理和针对内容访问的第二加密处理,获得再加密语法树;针对所述再加密语法树进行基于语法树的混淆转换处理,获得增强加密语法树;基于所述增强加密语法树,生成所述代码对应的加密代码。2.根据权利要求1所述的方法,其中,对所述初始加密语法树进行针对节点访问的第一加密处理,包括:针对所述初始加密语法树的每个根节点,增加在访问该根节点时的调用权限校验处理。3.根据权利要求2所述的方法,其中,所述针对所述初始加密语法树的每个根节点,增加在访问该根节点时的调用权限校验处理,包括:获取每个根节点对应的节点解析函数;在每个根节点对应的节点解析函数中插入用于进行调用权限校验的钩子函数。4.根据权利要求1所述的方法,其中,对所述初始加密语法树进行针对内容访问的第二加密处理,包括:确定所述初始加密语法树中需要进行内容访问的节点,为确定的所述节点增加在进行内容访问时的调用权限校验处理或加解密处理。5.根据权利要求4所述的方法,其中,所述为确定的所述节点增加在进行内容访问时的调用权限校验处理或加解密处理,包括:获取确定的所述节点的内容访问函数,在所述内容访问函数中插入用于调用权限校验的钩子函数,或者,插入用于进行加解密校验的钩子函数。6.根据权利要求1所述的方法,其中,所述对所述语法树进行代码混淆,获得初始加密语法树,包括:获取所述语法树中的包导入节点,并将包导入节点对应的静态包导入函数替换为动态包导入函数;和/或,获取所述语法树中所有节点的方法调用函数,将所述方法调用函数替换为通过属性字符串获取待调用的方法的函数。7.根据权利要求1所述的方法,其中,所述针对所述再加密语法树进行基于语法树的混淆转换处理,获得增强加密语法树,包括:对所述再加密语法树中的预设字段的参数进行随机化处理,生成并保存随机化处理前后的预设字段的参数之间的映射关系;和/或,对所述再加密语法树中的每个根节点的左右子树进行随机化置换,生成并保存置换顺序信息。8.根据权利要求1所述的方法,其中,所述获取待加密的动态解释型语...
【专利技术属性】
技术研发人员:于子淇,林立翔,游亮,龙欣,张尉东,卓钧亮,戚余航,刘思超,
申请(专利权)人:阿里巴巴中国有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。