一种序列号生成验证方法技术

技术编号:8536471 阅读:214 留言:0更新日期:2013-04-04 21:12
本发明专利技术提供一种序列号生成验证方法,该方法包括确定一组随机数字和关键数字,组合成为第一组关键字,该随机数字不重复;确定自定义部分并分别与第一组关键字进行异或操作,成为第二组关键字;用加密算法对第一组和第二组关键字进行加密,得到第三组关键字;将三组关键字组合为明文序列,并用分配秘钥算法得到的私有密钥对明文序列加密得到序列号;对所得序列号进行验证。该一种序列号生成验证方法和现有技术相比,序列号生成方法相对简单,且采用了经过大众认可的较为安全的加密算法,并加入了密钥的使用,能够保证序列号的安全,有效的保证了开发者与消费者的权益。

【技术实现步骤摘要】
一种序列号生成验证方法
本专利技术涉及一种数据加密的方法,具体地说是一种序列号生成验证方法。
技术介绍
现代商业软件产品通常作为包含软件代码和字母数字的产品密钥的物理介质来交付。软件供应商在对待特定用户和计算机启用与该软件相关联的完全权限之前要求其产品完成“激活”过程是常见的。序列号安装可以有效的保护软件,使得开发者与消费者的权利可以得到保障。虽然目前的序列号生成与验证方法很多,但多较为复杂,不够灵活。而且验证方式多为一次性验证,不具有检查与更新的功能。
技术实现思路
本专利技术的技术任务是针对在现有技术的不足,提供一种采用小巧、简单、灵活的方法完成较高复杂系数的密钥生成与验证,并且能够对序列号进行有效管理,提供校验功能的序列号生成和验证方法。本专利技术的技术方案是按以下方式实现的,该一种序列号生成验证方法,该方法的具体实现过程为:1)、确定一组随机数字和关键数字,组合成为第一组关键字,该随机数字不重复;2)、确定自定义部分并分别与第一组关键字进行异或操作,成为第二组关键字;3)、用加密算法对第一组和第二组关键字进行加密,得到第三组关键字;4)、将三组关键字组合为明文序列,并用分配秘钥算法得到的私有密钥对明文序列加密得到序列号;5)、对步骤4)所得序列号进行验证。所述步骤3)中的加密算法为SHA1加密算法。所述步骤4)中的分配秘钥算法是指RSA算法。所述验证过程为:使用公有密钥对序列号进行解密,得到明文序列;将明文序列还原为三组关键字;分别对明文序列的相应部分进行异或操作,得到每个字段的值,在字典中查找这些值相应的操作,进而完成验证。本专利技术与现有技术相比所产生的有益效果是:本专利技术的一种序列号生成验证方法序列号生成方法相对简单,且采用了经过大众认可的较为安全的加密算法,并加入了密钥的使用,能够保证序列号的安全,有效的保证了开发者与消费者的权益,成本低,实用性强。具体实施方式现在提供一种序列号生成验证方法,其包括以下步骤:1)、确定一组随机数字,确保序列号不重复;2)、确定一组关键数字;3)、将步骤1)中确定的随机数字与步骤2)中确定的关键数字进行组合,得到一组新的关键字Keystr;4)、重新确定一组关键字;5)、将步骤4)产生的关键字的各部分与Keystr相应的部分进行异或操作生成一组数字Payloadstr;6)、将Keystr与Payloadstr组合,经过SHA1散列算法加密,取前两位十六进制数生成一组数字Checksum,用于验证序列号正确性;7)、将Kerstr、Checksum、Payloadstr组成加密使用的明文序列;8)、使用非对称的RSA分配密钥算法得出私有密钥和公有密钥,使用私有密钥对明文序列加密生成序列号;9)、对所生成的序列号进行验证:使用公有密钥对序列号进行解密,得到明文序列;将明文序列按照长度还原为Keystr,Checksum,Payloadstr;对Keystr和Payloadstr的组合进行SHA1加密,验证结果是否与Checksum相同;分别对明文序列的Keystr和Payloadstr部分进行异或操作,得到每个字段的值,在字典中查找这些值相应的操作,进而完成验证。具体实施例步骤101,确定当前的系统日期Time,此日期需要精确到天,长度为16bit;步骤102,确定一组随机数字Random,用来保证序列号不会重复,长度为8bit;这组随机数的长度在一个具体的实施例中比关键字的长度要长,越长的随机数加密效果越好。随机数可以采用现有很多随即算法生成。步骤103,将Time与Random组合,得到Keystr,长度为24bit;步骤104,将软件的编号与步骤103所得到的Keystr的高14bit进行异或操作,得到值为Option,长度为14bit;步骤105,将软件的版本代号与步骤103所得的Keystr的次高6bit进行异或操作,得到值为Product,长度为6bit;步骤106,将软件的安装类型代号与步骤103所得的Keystr的低4bit进行异或操作,得到值为Type,长度为4bit;步骤107,将Option,Product,Type组合,得到Payloadstr,长度为24bit;步骤108,将步骤103所得的Keystr与步骤107所得的Payloadstr组合,用SHA1算法进行加密运算,取结果的前两位十六进制数,记为Checksum,可以验证Keystr与Payloadstr的正确性;步骤109,将Keystr,Checksum,Payloadstr组合,成为明文序列;步骤110,用RSA算法得出公私密钥,并用私钥对明文序列进行加密,得到值即为序列号。步骤201,将序列号用公有密钥进行解密,得到明文序列;步骤202,将明文序列按照长度还原为Keystr,Checksum,Payloadstr;步骤203,将上一步骤所得的Keystr与Payloadstr组合并用SHA1算法进行加密运算,验证结果是否与Checksum相同;步骤204,对Payloadstr进行异或操作,按照长度对各部分与字典中的对应值进行验证比较。以上所述仅为本专利技术的较佳实施例而已,并不用以限制本专利技术,凡在本专利技术的精神和原则之内,所做的任何修改,等同替换等,均应包含在本专利技术的保护范围之内。本文档来自技高网...

【技术保护点】
一种序列号生成验证方法,其特征在于该方法的具体实现过程为:1)、确定一组随机数字和关键数字,组合成为第一组关键字,该随机数字不重复;2)、确定自定义部分并分别与第一组关键字进行异或操作,成为第二组关键字;3)、用加密算法对第一组和第二组关键字进行加密,得到第三组关键字;4)、将三组关键字组合为明文序列,并用分配秘钥算法得到的私有密钥对明文序列加密得到序列号;5)、对步骤4)所得序列号进行验证。

【技术特征摘要】
1.一种序列号生成验证方法,其特征在于该方法的具体实现过程为:步骤101,确定当前的系统日期Time,此日期需要精确到天,长度为16bit;步骤102,确定一组随机数字Random,用来保证序列号不会重复,长度为8bit;步骤103,将Time与Random组合,得到Keystr,长度为24bit;步骤104,将软件的编号与步骤103所得到的Keystr的高14bit进行异或操作,得到值为Option,长度为14bit;步骤105,将软件的版本代号与步骤103所得的Keystr的次高6bit进行异或操作,得到值为Product,长度为6bit;步骤106,将软件的安装类型代号与步骤103所得的Keystr的低4bit进行异或操作,得到值为Type,长度为4bit;步骤107,将Option,Product,Type组合,得到Payloadstr,长度为24bit;步骤108,将步骤103所得...

【专利技术属性】
技术研发人员:宗栋瑞吴楠谢若鸿丛戎孟祥飞郭美思
申请(专利权)人:浪潮电子信息产业股份有限公司
类型:发明
国别省市:

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

1