一种基于Python虚拟机的服务授权方法及系统技术方案

技术编号:35581928 阅读:24 留言:0更新日期:2022-11-12 16:12
本申请提供一种基于Python虚拟机的服务授权方法及系统,该方法包括:将Python源代码编译为pyc文件并进行对称加密,将其和Python虚拟机一起提供给软件使用方;由于使用了对称加密,所有的pyc文件仅需要解密一次且耗时较短。并且为了防止Python虚拟机和pyc文件被一起复制和移植,软件提供商还提供一个由Go语言实现的认证服务,用于对Python虚拟机所在的Web服务器进行验证,其中Web服务器与认证服务之间使用非对称加密进行私有http通讯,从而实现了对Web服务器和软件功能的绑定,进一步提升了方案的安全等级。通过本申请的实施例,软件使用方的系统也无需联网到软件提供方的服务器即可完成软件的授权与认证,适合对系统安全性要求较高的环境。全性要求较高的环境。全性要求较高的环境。

【技术实现步骤摘要】
一种基于Python虚拟机的服务授权方法及系统


[0001]本申请涉及计算机
,特别涉及一种基于Python虚拟机的服务授权方法及系统、计算设备和计算机可读存储介质。

技术介绍

[0002]现有技术中,由于Python语言所具有的高级语言特性,天然适合服务器端Web应用的开发,各个互联网公司都采用Python语言作为服务器端应用的开发语言。但是Python语言是基于解释的语言,其开发的程序都基于解释器执行,程序源代码无需编译成字节码,所以无法对源代码进行较好的保护,将其用于商业行为。所以,在现有技术中基于Python开发的Web应用多是免费的公共服务、企业内部服务或一些开源的项目。因此,亟需一种能够将Python语言开发的Web应用进行商业化的方案,可以在特定的场景下将软件产品安全、易用地交付给客户。

技术实现思路

[0003]有鉴于此,本申请实施例提供了一种基于Python虚拟机的服务授权方法及系统、计算设备和计算机可读存储介质,以解决现有技术中存在的技术缺陷。
[0004]根据本申请实施例的第一方面,提供了一种基于Python虚拟机的服务授权方法,包括:
[0005]将Python源代码编译为pyc文件,并对所述pyc文件进行加密;
[0006]运行在Web服务器的Python虚拟机对所述pyc文件进行解密后加载所述pyc文件;
[0007]所述Web服务器向认证服务发送认证请求;所述认证服务根据所述Web服务器的许可文件对所述认证请求进行认证;
[0008]所述Web服务器接收客户端的请求,提供所述pyc文件中实现的Web服务;所述Web服务器、认证服务均在内网环境。
[0009]根据本申请实施例的第二方面,提供了一种基于Python虚拟机的服务授权系统,包括:
[0010]部署在Web服务器的Python虚拟机;
[0011]所述Python虚拟机对经过加密的pyc文件进行解密后加载所述pyc文件;
[0012]认证服务器,所述Web服务器向认证服务发送认证请求;所述认证服务根据所述Web服务器的许可文件对所述认证请求进行认证;
[0013]所述Web服务器接收客户端的请求,提供所述pyc文件实现的Web服务。
[0014]根据本申请实施例的第三方面,提供了一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述指令时实现所述基于Python虚拟机的服务授权方法的步骤。
[0015]根据本申请实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现所述基于Python虚拟机的服务授权方法的步骤。
[0016]本申请实施例中,为了实现基于Python语言的软件的保护和商业化,将开发完成的Python源代码编译为pyc文件,并对pyc文件进行对称加密后提供给软件使用方。与此同时,将具有解密功能的Python虚拟机提供给软件使用方,由于使用了对称加密,所有的pyc文件仅需要解密一次且耗时较短,兼顾了代码保护的效果和加载的效率。并且为了防止Python虚拟机和pyc文件被一起复制和移植,软件提供商还提供一个由Go语言实现的认证服务,用于对Python虚拟机所在的Web服务器进行验证,其中Web服务器与认证服务之间使用非对称加密进行私有http通讯,从而实现了对Web服务器和用Python语言实现的Web服务的绑定。由于使用了非对称加密,可以防止验证请求被拦截和破解,进一步提升了方案的安全等级,比单独基于pyc文件和虚拟机加密的方案具有更高的安全性。最后,通过本申请的实施例,软件使用方的系统无需联网到软件提供方的服务器即可完成软件的授权与认证,适合对系统安全性要求较高的环境。
附图说明
[0017]图1是本申请实施例提供的计算设备的结构框图;
[0018]图2是本申请实施例提供的一种基于Python虚拟机的服务授权方法的流程示意图;
[0019]图3是本申请实施例提供的一种基于Python虚拟机的服务授权系统的一结构示意图。
具体实施方式
[0020]在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
[0021]在本申请一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请一个或多个实施例。在本申请一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本申请一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
[0022]应当理解,尽管在本申请一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“响应于确定”。
[0023]在本申请中,提供了一种基于Python虚拟机的服务授权方法及系统、计算设备和计算机可读存储介质,在下面的实施例中逐一进行详细说明。
[0024]图1示出了根据本申请一实施例的计算设备100的结构框图。该计算设备100的部件包括但不限于存储器110和处理器120。处理器120与存储器110通过总线130相连接,数据库150用于保存数据。
[0025]计算设备100还包括接入设备140,接入设备140使得计算设备100能够经由一个或
多个网络160通信。这些网络的示例包括公用交换电话网(PSTN)、局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。接入设备140可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi

MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。
[0026]在本申请的一个实施例中,计算设备100的上述部件以及图1中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图1所示的计算设备结构框图仅仅是出于示例的目的,而不是对本申请范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
[0027]计算设备100可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于Python虚拟机的服务授权方法,其特征在于,包括:将Python源代码编译为pyc文件,并对所述pyc文件进行加密;运行在Web服务器的Python虚拟机对所述pyc文件进行解密后加载所述pyc文件;所述Web服务器向认证服务发送认证请求;所述认证服务根据所述Web服务器的许可文件对所述认证请求进行认证;所述Web服务器接收客户端的请求,提供所述pyc文件中实现的Web服务;所述Web服务器、认证服务均在内网环境。2.根据权利要求1所述的方法,其中,所述认证服务根据所述Web服务器的许可文件对所述认证请求进行认证之前包括:在Web服务器上运行授权工具,得到所述Web服务器的硬件信息;根据所述硬件信息和预授权内容,软件提供方利用授权管理工具进行非对称加密得到所述Web服务器的许可文件;使得所述认证服务能够访问该许可文件。3.根据权利要求1所述的方法,其中,对所述pyc文件进行加密包括:利用加密器对所述pyc文件进行对称加密。4.根据权利要求1所述的方法,其中,所述Web服务器向认证服务发送认证请求包括:当Python程序在Python虚拟机中启动时,向认证服务发送认证请求;或者,当到达预期的时间周期时,向认证服务重新发送认证请求。5.根据权利要求1所述的方法,其中,所述认证服务根据所述Web服务器的许可文件对所述认证请求进行认证...

【专利技术属性】
技术研发人员:袁祖祥林逸杨利华郭子文
申请(专利权)人:北京云游互动网络科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1