CN102479306B - 一种资源验证方法及装置 - Google Patents

一种资源验证方法及装置 Download PDF

Info

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
current
memory
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
Application number
CN201010566127.1A
Other languages
English (en)
Other versions
CN102479306A (zh
Inventor
刘超俊
温光辉
文锦祥
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201010566127.1A priority Critical patent/CN102479306B/zh
Publication of CN102479306A publication Critical patent/CN102479306A/zh
Application granted granted Critical
Publication of CN102479306B publication Critical patent/CN102479306B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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所述的装置,其特征在于,所述资源密钥计算单元从头位置提取的信息长度大于尾位置提取的信息长度。
CN201010566127.1A 2010-11-23 2010-11-23 一种资源验证方法及装置 Active CN102479306B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN2857364Y (zh) * 2005-12-14 2007-01-10 康佳集团股份有限公司 加密数据的接收及解密装置
CN101771532A (zh) * 2008-12-31 2010-07-07 华为技术有限公司 实现资源共享的方法、装置及系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
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
US20200412526A1 (en) Method and apparatus for verifying smart contracts in blockchain, and storage medium
JP6939791B2 (ja) 掲示板情報管理システム
US20210049715A1 (en) Blockchain-based data procesing method, apparatus, and electronic device
CN108037946B (zh) 一种应用程序热更新的方法、系统及服务器
He et al. Securing over-the-air IoT firmware updates using blockchain
CN110058873A (zh) 应用页面更新方法、装置、设备和存储介质
JP2015111909A5 (zh)
CN110543488B (zh) 一种验证节点更新方法、装置及设备
CN104751048A (zh) 一种预链接机制下的动态链接库完整性度量方法
CN105119722A (zh) 一种身份验证方法、设备及系统
CN109088902B (zh) 注册方法及装置、认证方法及装置
US20190253478A1 (en) Management of asynchronous content post and media file transmissions
US20150288703A1 (en) Data possession verification system and method
CN107341070A (zh) 一种基于纠删码的随机写方法及系统
CN102479306B (zh) 一种资源验证方法及装置
CN113126996B (zh) 代码审核的方法、装置及系统
CN104778410A (zh) 一种应用程序完整性验证方法
CN109586949A (zh) 区块生成方法及计算机存储介质
CN110036367A (zh) 一种ai运算结果的验证方法及相关产品
EP2738724A1 (en) System and method for transferring electronic money
CN108416221A (zh) 一种云环境中安全的相似数据拥有证明方案
CN110929230A (zh) 作品管理方法、装置、设备以及存储介质
CN103049445B (zh) 一种查询图片信息的方法、系统和图片状态服务器
CN104503862A (zh) 获得应用渠道包的校验值的方法和装置
CN110991358A (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