计算机源代码的编译方法及装置、认证方法、装置及系统制造方法及图纸

技术编号:14393133 阅读:102 留言:0更新日期:2017-01-10 21:38
本发明专利技术提供了一种计算机源代码的编译方法及装置、认证方法、装置及系统,其中,该编译方法包括:编译源程序产生目标程序和编译列表;根据所述编译列表对应的特征值产生特征模块;根据所述目标程序和所述特征模块生成可执行程序。本发明专利技术能够保证可运行模块与其对应源程序(源代码)的一致性,实现了软件包的源程序级认证功能,能够确保外包软件产品的源代码的可信度。

【技术实现步骤摘要】

本专利技术涉及计算机
,尤其涉及保证计算机源代码可信度的方法,具体来说就是一种计算机源代码的编译方法及装置、认证方法、装置及系统
技术介绍
在软件产品开发过程中,程序开发人员提交的是源程序,软件产品管理人员对源程序进行构建,产生可运行模块,然后发布与部署可运行模块,最终运行该可运行模块。由于可运行模块是不可读的,如何保证在这一系列流转之后,可运行模块就是由最初的那个源程序所构建的呢?即在这一系列流转过程中,怎么确定可运行模块对应的源程序是否被人篡改过,或者说怎么知道这个可运行模块就是由最初的源程序所产生的。为此,现有技术中出现三种保证源程序与可运行模块一致的方式:1.源程序标签方式,就是开发人员在源程序中设置标签作为提示;2.可运行模块时间戳方式,即源程序在编译产生可运行模块时,会在可运行模块中自动生成一个编译时间戳,通过检查各个环节的时间戳是否一致来判断可运行模块是否可信;3.可运行模块长度方式,由源程序编译产生的可运行模块,有一个字符长度值,通过验证该字符长度值来确保源程序与可运行模块的对应关系。虽然现有方式在一定程度上可以保证源程序与可运行模块相一致,但是存在严重的安全漏洞,并不能确保源程序与可运行模块相一致,具体说明如下:在源程序标签方式中,开发人员在源程序中设置的标签仅可以将其作为提示,但不能作为判断标准,因为在源程序提交后可以修改源程序而保持标签不变。可运行模块时间戳方式至少存在以下两个缺点:A)有可能存在时间戳相同的多个源程序,因此,时间戳相同并不能保证运行模块就是初始的源程序;B)程序产品部署通常包括可运行模块部署和源程序部署,可运行模块部署就是源程序在一个地方编译,并将可运行模块部署到其他地方,源程序部署则是在需要的地方对源程序进行编译,产生可运行模块,这样一来,可运行模块时间戳的方式就失效了。在可运行模块长度方式中,通常情况下,源程序修改后,字符长度值会发生变化,但是,在某些情况下,这个字符长度值是不变的,比如将字符A改成字符B,字符长度值不会发生变化。本领域技术人员亟需研发一种计算机源代码的认证方法,能确保计算机源代码与可运行模块的一致性,从而保证计算机源代码构建结果的可信度。
技术实现思路
有鉴于此,本专利技术要解决的技术问题在于提供一种计算机源代码的编译方法及装置、认证方法、装置及系统,解决了现有技术中不能确保计算机源代码与可运行模块一致性的问题。为了解决上述技术问题,本专利技术的具体实施方式提供一种计算机源代码的编译方法,包括:编译源程序产生目标程序和编译列表;根据所述编译列表对应的特征值产生特征模块;根据所述目标程序和所述特征模块生成可执行程序。本专利技术的具体实施方式还提供一种计算机源代码的编译装置,包括:编译单元,用于编译源程序产生目标程序和编译列表;产生单元,用于根据所述编译列表对应的特征值产生特征模块;生成单元,用于根据所述目标程序和所述特征模块生成可执行程序。本专利技术的具体实施方式还提供一种计算机源代码的认证方法,包括:解析可执行程序中特征模块对应的第一特征值;编译源程序产生编译列表;根据所述编译列表产生源程序对应的第二特征值;比较所述第一特征值和所述第二特征值以验证计算机源代码的构建是否可信。本专利技术的具体实施方式还提供一种计算机源代码的认证装置,包括:解析单元,用于解析可执行程序中特征模块对应的第一特征值;编译单元,用于编译源程序产生编译列表;产生单元,用于根据所述编译列表产生源程序对应的第二特征值;比较单元,用于比较所述第一特征值和所述第二特征值以验证计算机源代码的构建是否可信。本专利技术的具体实施方式还提供一种计算机源代码的认证系统,包括:编译装置和认证装置。其中,所述编译装置包括:所述编译装置包括:编译单元,用于编译源程序产生目标程序和编译列表;产生单元,用于根据所述编译列表对应的特征值产生特征模块;生成单元,用于根据所述目标程序和所述特征模块生成可执行程序。所述认证装置包括:解析单元,用于解析可执行程序中特征模块对应的第一特征值;编译单元,用于编译源程序产生编译列表;产生单元,用于根据所述编译列表产生源程序对应的第二特征值;比较单元,用于比较所述第一特征值和所述第二特征值以验证计算机源代码的构建是否可信。根据本专利技术的上述具体实施方式可知,计算机源代码的编译方法及装置、认证方法、装置及系统至少具有以下有益效果:在不影响程序原有功能的前提下,修改源程序的编译过程,利用MD5算法基于源程序产生一个独一无二的数字签名(即特征值),并将数字签名编译成特征模块后,嵌套到可运行模块(即可执行程序)中,该数字签名在可运行模块中可读,因此通过可运行模块可以获得对应可运行模块的数字签名;由于源程序的数字签名在编译时保存到可运行模块中,并且可以从该可以运行模块中解析出该数字签名。同时,也可以利用源程序随时重新生成对应源程序的数字签名,只要源程序没有变更,数字签名就不会改变,这样一来,就可以随时解析出可运行模块中的数字签名与源程序的数字签名进行比对,从而保证可运行模块与其对应源程序的一致性,实现了软件包的源程序级认证功能,能够确保外包软件产品的源代码的可信度。应了解的是,上述一般描述及以下具体实施方式仅为示例性及阐释性的,其并不能限制本专利技术所欲主张的范围。附图说明下面的所附附图是本专利技术的说明书的一部分,其绘示了本专利技术的示例实施例,所附附图与说明书的描述一起用来说明本专利技术的原理。图1为本专利技术具体实施方式提供的一种计算机源代码的编译方法的实施例一的流程图;图2为本专利技术具体实施方式提供的一种计算机源代码的编译方法的实施例二的流程图;图3为本专利技术具体实施方式提供的一种计算机源代码的编译方法的实施例三的流程图;图4为本专利技术具体实施方式提供的一种计算机源代码的编译装置的实施例一的示意框图;图5为本专利技术具体实施方式提供的一种计算机源代码的编译装置的实施例二的示意框图;图6为本专利技术具体实施方式提供的一种计算机源代码的编译装置的实施例三的示意框图;图7为本专利技术具体实施方式提供的一种计算机源代码的认证方法的实施例一的流程图;图8为本专利技术具体实施方式提供的一种计算机源代码的认证方法的实施例二的流程图;图9为本专利技术具体实施方式提供的一种计算机源代码的认证装置的实施例一的示意框图;图10为本专利技术具体实施方式提供的一种计算机源代码的认证装置的实施例二的示意框图;图11为本专利技术具体实施方式提供的一种计算机源代码的认证系统的示意框图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚明白,下面将以附图及详细叙述清楚说明本专利技术所揭示内容的精神,任何所属
技术人员在了解本
技术实现思路
的实施例后,当可由本
技术实现思路
所教示的技术,加以改变及修饰,其并不脱离本
技术实现思路
的精神与范围。本专利技术的示意性实施例及其说明用于解释本专利技术,但并不作为对本专利技术的限定。另外,在附图及实施方式中所使用相同或类似标号的元件/构件是用来代表相同或类似部分。关于本文中所使用的“第一”、“第二”、…等,并非特别指称次序或顺位的意思,也非用以限定本专利技术,其仅为了区别以相同技术用语描述的元件或操作。关于本文中所使用的方向用语,例如:上、下、左、右、前或后等,仅是参考附图的方向。因此,使用的方向用语是用来说明并非用来限制本创作。关于本文中所使用本文档来自技高网
...
计算机源代码的编译方法及装置、认证方法、装置及系统

【技术保护点】
一种计算机源代码的编译方法,其特征在于,该编译方法包括:编译源程序产生目标程序和编译列表;根据所述编译列表对应的特征值产生特征模块;以及根据所述目标程序和所述特征模块生成可执行程序。

【技术特征摘要】
1.一种计算机源代码的编译方法,其特征在于,该编译方法包括:编译源程序产生目标程序和编译列表;根据所述编译列表对应的特征值产生特征模块;以及根据所述目标程序和所述特征模块生成可执行程序。2.如权利要求1所述的计算机源代码的编译方法,其特征在于,根据所述编译列表对应的特征值产生特征模块的步骤之前,该编译方法还包括:滤除所述编译列表中非人工编写的程序代码。3.如权利要求2所述的计算机源代码的编译方法,其特征在于,非人工编写的所述程序代码包括:编译日期和时间戳。4.如权利要求1所述的计算机源代码的编译方法,其特征在于,根据所述编译列表对应的特征值产生特征模块的步骤,具体包括:根据所述编译列表产生对应源程序的特征值;根据对应所述源程序的特征值产生汇编程序;以及编译所述汇编程序产生特征模块。5.如权利要求1所述的计算机源代码的编译方法,其特征在于,所述特征值为MD5码。6.一种计算机源代码的编译装置,其特征在于,该编译装置包括:编译单元,用于编译源程序产生目标程序和编译列表;产生单元,用于根据所述编译列表对应的特征值产生特征模块;以及生成单元,用于根据所述目标程序和所述特征模块生成可执行程序。7.如权利要求6所述的计算机源代码的编译装置,其特征在于,该编译装置还包括:过滤单元,用于滤除所述编译列表中非人工编写的程序代码。8.如权利要求6所述的计算机源代码的编译装置,其特征在于,所述产生单元进一步包括:产生模块,用于根据所述编译列表产生对应源程序的特征值;汇编模块,用于根据对应所述源程序的特征值产生汇编程序;以及编译模块,用于编译所述汇编程序产生特征模块。9.一种计算机源代码的认证方法,其特征在于,该认证方法包括:解析可执行程序中特征模...

【专利技术属性】
技术研发人员:考振杰汤东波
申请(专利权)人:中国银行股份有限公司
类型:发明
国别省市:北京;11

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

1