CN102479306B - 一种资源验证方法及装置 - Google Patents
一种资源验证方法及装置 Download PDFInfo
- Publication number
- CN102479306B CN102479306B CN201010566127.1A CN201010566127A CN102479306B CN 102479306 B CN102479306 B CN 102479306B CN 201010566127 A CN201010566127 A CN 201010566127A CN 102479306 B CN102479306 B CN 102479306B
- Authority
- CN
- China
- Prior art keywords
- resource
- cache
- key
- currently acquired
- resources
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 27
- 238000004364 calculation method Methods 0.000 claims description 24
- 238000012795 verification Methods 0.000 claims description 20
- 239000000284 extract Substances 0.000 claims description 2
- 238000010200 validation analysis Methods 0.000 claims 1
- 230000006870 function Effects 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000004883 computer application Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Landscapes
- Information Transfer Between Computers (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种资源验证方法,包括:需要加载资源时,从缓存或服务器中获取所需资源;从当前获取的资源的头位置和尾位置分别提取一定长度的信息计算密钥;将计算出的密钥与预设的参考密钥进行比较,验证当前获取的资源是否有效。本发明还同时公开了一种资源验证装置,采用本发明能验证资源的完整性,并能完成资源版本号的管理。
Description
技术领域
本发明涉及资源管理技术,特别是涉及一种资源验证方法及装置。
背景技术
随着计算机应用以及软件应用程序的飞速发展,应用于不同应用环境、实现不同功能的程序不断涌现。随着现有网络的发展,通过网络传输各种信息、通过网络实现资源共享,已经成为人们获取信息资源必不可少的途径。很多用户会根据自身需求,在需要时加载相应的资源,完成所需的功能,那么,所加载的资源是否正确、是否有效就变得非常重要,如果所加载的资源错误或无效,就会导致用户终端不能正常完成所需功能,因此,进行资源验证是非常必要的。
目前,在web flash应用中,用户加载所需资源时,只是通过所要加载资源的版本号对当前加载资源进行验证,虽然能确定当前加载的资源是否为用户需要的资源,但不能对资源的完整性进行验证,这样,可能会影响所加载资源的后续使用。
发明内容
有鉴于此,本发明的主要目的在于提供一种资源验证方法及装置,能验证资源的完整性。
为达到上述目的,本发明的技术方案是这样实现的:
本发明提供了一种资源验证方法,包括:
需要加载资源时,从缓存或服务器中获取所需资源;
从当前获取的资源的头位置和尾位置分别提取一定长度的信息计算密钥;
将计算出的密钥与预设的参考密钥进行比较,验证当前获取的资源是否有效。
上述方案中,所述缓存为内存缓存(memory_cache)、或动画缓存(flash_cache)、或浏览器缓存。
上述方案中,所述资源从服务器获取时,该方法进一步包括:将当前获取的资源根据资源类型存储于memory_cache、或flash_cache、或浏览器缓存中。
上述方案中,所述从当前获取的资源的头位置和尾位置分别提取一定长度的信息为:从头位置提取的信息长度大于尾位置提取的信息长度。
上述方案中,该方法进一步包括:预先设置包括各个资源参考密钥的配置表,其中,每个资源唯一对应一个参考密钥。
上述方案中,所述验证当前资源是否有效为:所计算出的密钥与配置表中相应资源的参考密钥一致,当前所获取的资源有效。
本发明还提供了一种资源验证装置,包括资源获取单元、资源密钥计算单元、资源验证单元;其中,
所述资源获取单元,用于在需要加载资源时,从缓存或服务器中获取所需资源;
所述资源密钥计算单元,用于从当前所获取的资源的头位置和尾位置分别提取一定长度的信息进行密钥计算;
所述资源验证单元,用于将计算出的密钥与参考密钥进行比较,验证当前获取的资源是否有效。
其中,所述资源获取单元从memory_cache、或flash_cache、或浏览器缓存获取所需资源。所述资源密钥计算单元从头位置提取的信息长度大于尾位置提取的信息长度。
本发明提供的资源验证方法及装置,在对所获取的资源进行验证时,从资源的头位置和尾位置提取一定长度的信息进行密钥计算,将计算出的密钥与参考密钥进行比较,验证当前获取的资源是否有效。由于计算密钥时同时提取资源的头尾信息参与计算,因此,能保证对资源的完整性进行验证。
进一步的,由于进行比较的参考密钥与相应的资源版本号是一一对应的,例如:参考密钥A对应的版本号为ver 1.0,参考密钥B对应的版本号为ver 2.0,依次类推,这样,不仅可以根据当前所计算密钥与参考密钥是否一致,来确定当前所获取的资源是否为最新版本、是否有效;也可以根据当前所计算密钥找到匹配的参考密钥,来进一步确定当前获取的资源对应的资源版本号,如此,可实现对资源版本号的管理。
另外,本发明在需要加载资源时,可以通过多种不同途径如从各类缓存、从服务器等获取所需要的资源,如此,使得资源获取更为灵活、方便、易于实现。
附图说明
图1为本发明资源验证方法的实现流程示意图;
图2为本发明资源验证方法一实施例的实现流程示意图;
图3为本发明资源验证装置的组成结构示意图。
具体实施方式
本发明的基本思想是:需要加载资源时,从缓存或服务器中获取所需资源;对所获取的资源进行验证时,从资源的头位置和尾位置分别提取一定长度的信息进行密钥计算,将计算出的密钥与参考密钥进行比较,验证当前获取的资源是否有效。
这里,所述缓存包括不同类型的缓存,如:memory_cache、flash_cache、浏览器缓存。
所述从资源头位置和尾位置分别提取的信息长度一般不同,考虑到计算效率和准确度等问题,通常从头位置提取的信息长度大于尾位置提取的信息长度。
所述参考密钥是预先设置的,每个资源都对应一个密钥,可将所有资源分别对应的参考密钥形成一个配置表进行存储,便于查找比对;进一步的,对于每个资源不同的版本,也可以将每个资源不同版本对应的参考密钥放置于配置表中,以便于在需要时进行匹配比较,例如:配置表中包括资源X和资源Y,对于资源X又进一步包括资源X的ver 1.0版本和ver 2.0版本。
本发明的资源验证方法如图1所示,包括以下步骤:
步骤101:需要加载资源时,从缓存或服务器中获取所需资源;
其中,所述缓存至少包括memory_cache、flash_cache、以及浏览器缓存;所述资源可以是文件、图片、应用程序等等。
步骤102:从当前所获取的资源的头位置和尾位置分别提取一定长度的信息进行密钥计算;
通常,从头位置提取的信息长度大于尾位置提取的信息长度,比如:对于大于15k的文件,较佳的,提取头位置的10k字节、尾位置的5k字节进行密钥计算,当然,实际应用中也可以采用其它长度。对于密钥计算,较佳的,采用md5算法,当然,实际应用中也可以采用其它密钥计算方法。
在具体应用中,可采用下述函数进行密钥计算,其中密钥计算方法采用md5算法:
static public function md5(bytes:ByteArray):String
{
bytes.position=0;
if(bytes.length<1024*15)return MD5.hashBytes(bytes);
var byte:ByteArray=new ByteArray();
bytes.readBytes(byte,0,10*1024);
bytes.position=bytes.length-5*1024;
bytes.readBytes(byte,byte.length,0);
return MD5.hashBytes(byte);
}
步骤103:将计算出的密钥与参考密钥进行比较,验证当前获取的资源是否有效;
本方法中,会预先设置包括每个资源参考密钥的配置表,参考密钥通常是在产品发布时、采用一定密钥计算方法如md5算法计算的,相应的,步骤102中对当前所获取资源进行密钥计算时,需要采用与参考密钥相同的密钥计算方法。其中,每个资源唯一对应一个参考密钥,如果一个资源有多种版本,那么,每个资源的每个版本唯一对应一个参考密钥。
进一步的,本步骤中如果验证当前获取的资源有效、且当前获取的资源是从服务器获取的,则可以存储当前获取的资源到缓存中,以便下次需要加载时直接获取,具体的,可根据资源类型将所获取的资源存储于memory_cache、或flash_cache、或浏览器缓存。
图1所示的流程在终端执行;本发明主要适用于web flash应用,当然,如果有其他类似的应用环境,如至少包括memory_cache、flash_cache、浏览器缓存的应用环境中,本发明同样适用。
图2为本发明资源验证方法一实施例的实现流程示意图,本实施例中,在终端中预先设置并存储有包括各个资源参考密钥的配置表,所述参考密钥分别是在各个资源发布时采用指定密钥计算方法计算的。如图2所述,本实施例的资源验证方法包括以下步骤:
步骤201~202:需要加载资源时,判断是否使用缓存中的资源,如果使用,则执行步骤203;否则,执行步骤206;
步骤203:memory_cache中是否有所需资源,如果有,则获取所需资源,之后执行步骤207;否则,执行步骤204;
步骤204:flash_cache中是否有所需资源,如果有,则获取所需资源,之后执行步骤207;否则,执行步骤205;
步骤205:浏览器缓存中是否有所需资源,如果有,则获取所需资源,之后执行步骤207;否则,执行步骤206;
步骤206:从服务器获取并下载所需资源,如果获取到,则执行步骤207;如果未获取到,则执行步骤209;
步骤207:从当前所获取的资源的头位置和尾位置分别提取一定长度的信息,计算当前所获取资源的密钥;
步骤208:将所计算出的密钥与配置表中的参考密钥进行比较,验证当前所获取的资源是否有效,如果验证通过,则执行步骤210,如果验证错误,则执行步骤209;
这里,如果所计算出的密钥与配置表中相应资源的参考密钥一致,则验证通过,当前所获取的资源有效;否则,验证错误,当前所获取的资源无效。
步骤209:判断是否需要重试,也就是说是否需要重新获取一次所需资源,如果需要,则返回步骤206;否则,结束当前处理流程。
步骤210:存储当前所获取的资源,之后结束当前处理流程;
这里,所述存储是指:将从服务器获取的资源根据资源类型存储于相应缓存中,比如:存储于memory_cache、或flash_cache、或浏览器缓存中,以便下次需要加载时直接从缓存中获取。相应的,如果当前资源本身已经是从某个缓存中获取的,本步骤可以省略,无需再次存储获取的资源。
为实现上述方法,本发明还提供了一种资源验证装置,包括资源获取单元、资源密钥计算单元、资源验证单元;其中,
所述资源获取单元,用于在需要加载资源时,从缓存或服务器中获取所需资源;
其中,所述从缓存获取为从memory_cache、或flash_cache、或浏览器缓存获取所需资源;
所述资源密钥计算单元,用于从当前所获取的资源的头位置和尾位置分别提取一定长度的信息进行密钥计算;
所述资源验证单元,用于将计算出的密钥与参考密钥进行比较,验证当前获取的资源是否有效。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种资源验证方法,其特征在于,该方法包括:
需要加载资源时,从缓存或服务器中获取所需资源;其中,每个资源对应一个参考密钥,每个资源的不同版本对应一个参考密钥;
从当前获取的资源的头位置和尾位置分别提取一定长度的信息计算密钥;
将计算出的密钥与预设的参考密钥进行比较,验证当前获取的资源是否有效。
2.根据权利要求1所述的方法,其特征在于,所述缓存为内存缓存(memory_cache)、或动画缓存(flash_cache)、或浏览器缓存。
3.根据权利要求2所述的方法,其特征在于,所述资源从服务器获取时,该方法进一步包括:将当前获取的资源根据资源类型存储于memory_cache、或flash_cache、或浏览器缓存中。
4.根据权利要求1、2或3所述的方法,其特征在于,所述从当前获取的资源的头位置和尾位置分别提取一定长度的信息为:从头位置提取的信息长度大于尾位置提取的信息长度。
5.根据权利要求1、2或3所述的方法,其特征在于,该方法进一步包括:预先设置包括各个资源对应的参考密钥和各个资源不同版本对应的参考密钥的配置表。
6.根据权利要求5所述的方法,其特征在于,所述验证当前资源是否有效为:所计算出的密钥与配置表中相应资源或资源版本的参考密钥一致,当前所获取的资源有效。
7.一种资源验证装置,其特征在于,该装置包括资源获取单元、资源密钥计算单元、资源验证单元;其中,
所述资源获取单元,用于在需要加载资源时,从缓存或服务器中获取所需资源;每个资源对应一个参考密钥,每个资源的不同版本对应一个参考密钥;
所述资源密钥计算单元,用于从当前所获取的资源的头位置和尾位置分别提取一定长度的信息进行密钥计算;
所述资源验证单元,用于将计算出的密钥与参考密钥进行比较,验证当前获取的资源是否有效。
8.根据权利要求7所述的装置,其特征在于,所述资源获取单元从memory_cache、或flash_cache、或浏览器缓存获取所需资源。
9.根据权利要求7或8所述的装置,其特征在于,所述资源密钥计算单元从头位置提取的信息长度大于尾位置提取的信息长度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010566127.1A CN102479306B (zh) | 2010-11-23 | 2010-11-23 | 一种资源验证方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010566127.1A CN102479306B (zh) | 2010-11-23 | 2010-11-23 | 一种资源验证方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102479306A CN102479306A (zh) | 2012-05-30 |
CN102479306B true CN102479306B (zh) | 2015-07-15 |
Family
ID=46091946
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010566127.1A Active CN102479306B (zh) | 2010-11-23 | 2010-11-23 | 一种资源验证方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102479306B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103812894B (zh) * | 2012-11-12 | 2017-09-01 | 中国石油天然气集团公司 | 一种实时监控***中web发布文件版本的管理方法 |
CN103279700A (zh) * | 2013-06-08 | 2013-09-04 | 北京时代奥视数码技术有限公司 | 液晶监视器的固件版本验证方法和液晶监视器 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN2857364Y (zh) * | 2005-12-14 | 2007-01-10 | 康佳集团股份有限公司 | 加密数据的接收及解密装置 |
CN101771532A (zh) * | 2008-12-31 | 2010-07-07 | 华为技术有限公司 | 实现资源共享的方法、装置及*** |
-
2010
- 2010-11-23 CN CN201010566127.1A patent/CN102479306B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN2857364Y (zh) * | 2005-12-14 | 2007-01-10 | 康佳集团股份有限公司 | 加密数据的接收及解密装置 |
CN101771532A (zh) * | 2008-12-31 | 2010-07-07 | 华为技术有限公司 | 实现资源共享的方法、装置及*** |
Also Published As
Publication number | Publication date |
---|---|
CN102479306A (zh) | 2012-05-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107396360B (zh) | 区块验证方法及装置 | |
CN107911222B (zh) | 数字签名生成、验证方法及其设备和存储介质 | |
CN102982258B (zh) | 一种对移动应用程序进行原版校验的*** | |
CN106940651B (zh) | Pos终端软件升级方法和装置 | |
CN103167491B (zh) | 一种基于软件数字证书的移动终端唯一性认证方法 | |
WO2017041606A1 (zh) | 程序文件校验方法及装置、服务器和终端 | |
CN107743115B (zh) | 一种终端应用的身份认证方法、装置和*** | |
CN108334753B (zh) | 盗版应用验证方法和分布式服务器节点 | |
CN103036894B (zh) | 一种智能终端应用程序安装文件联网数字签名方法 | |
CN105320535B (zh) | 一种安装包的校验方法、客户端、服务器及*** | |
CN102883324A (zh) | 移动终端中的插件调用安全验证方法及装置、移动终端 | |
JP2011015258A5 (ja) | 無線通信システム、ホスト、デバイスおよび無線通信方法 | |
JP4533935B2 (ja) | ライセンス認証システム及び認証方法 | |
CN109474600B (zh) | 一种账号绑定方法、***、装置及其设备 | |
CN105706099A (zh) | 软件更新装置及软件更新程序 | |
CN105637516A (zh) | 使用散列对动态代码的完整性进行验证的方法 | |
US9405939B2 (en) | Data processing on a non-volatile mass storage device | |
JP5928760B2 (ja) | コンテンツ管理方法 | |
CN105959293B (zh) | 电子账号的管理方法和装置 | |
JP2023525576A (ja) | ソフトウェア更新のための認証キーの制御範囲 | |
CN112039890A (zh) | 一种验证码校验方法、装置、终端及介质 | |
CN102479306B (zh) | 一种资源验证方法及装置 | |
CN111176685A (zh) | 一种升级方法及装置 | |
CN111224826B (zh) | 基于分布式***的配置更新方法、设备、***及介质 | |
CN115185551A (zh) | 一种应用程序安装方法、装置、***及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |