CN107368297A - 一种生成应用码的方法 - Google Patents
一种生成应用码的方法 Download PDFInfo
- Publication number
- CN107368297A CN107368297A CN201710465066.1A CN201710465066A CN107368297A CN 107368297 A CN107368297 A CN 107368297A CN 201710465066 A CN201710465066 A CN 201710465066A CN 107368297 A CN107368297 A CN 107368297A
- Authority
- CN
- China
- Prior art keywords
- application code
- batch
- javabean
- application
- generating
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本发明公开一种生成应用码的方法,包含以下步骤:A获取批次ID;B根据批次ID与生成数量生成固定数量应用码,本发明的有益效果是:1、安全性高,通过35进制与随机数的算法,利用逆向思维可以做到相互转化,从而保证了应用码的安全性;2、扩展性强,可以对应1..........n中应用码类型,无限扩展,添加方便;3、唯一性,此种算法可以明确统计可以生成64339296874个批次,最多可以生成64339296874*5000个应用码,保证了应用码的唯一性;4、高性能,500并发下,响应速度能够达到1000tps.保证了应用码的存储速度。
Description
技术领域
本发明涉及数据处理领域,具体是一种生成应用码的方法。
背景技术
目前国内随着互联网行业的不断崛起,互联网游戏产业也是层出不穷,而游戏中最常见的业务场景之一就是道具或者礼包的应用,对于玩家而言,要想获得对应的道具或者礼包是需要一个唯一的兑换标识,而这种兑换标识在游戏技术中是需要严格处理的一个技术细节,设计时,主要考虑四个方面的特性,一是它的安全性;二是它的扩展性;三是它的无穷性;
四是它的高性能。
当前游戏产业对于该技术均有着依赖的关系,但对于这种技术的处理却是各式各样的,
IT技术虽说本身就讲究创新,无章可循的。但基于我对业界对于该技术处理了解,大都没有考虑到上诉四个方面的特性或者只考虑到其中一二。
所以,本技术采用业界主流编程语言java,结合算法、数据建模、缓存。
发明内容
本发明的目的在于提供一种结构简单、使用方便的生成应用码的方法,以解决上述背景技术中提出的问题。
为实现上述目的,本发明提供如下技术方案:
一种生成应用码的方法,包含以下步骤:A获取批次ID;B根据批次ID与生成数量生成固定数量应用码。
作为本发明的优选方案:所述步骤A包括:1、通过JavaBean AppAgent创建代理对象;2、通过JavaBean AppCodeBatch创建一个新的应用批次对象;3、通过JavaBeanAppCodeBatch创建一个新的应用批次对象。
作为本发明的优选方案:所述步骤B包括:①、采用***提供组件工具类进行参数校验;②、采用***提供组件工具类进行参数校验,生成之后通过javaBean AppCode创建应用码对象,③、将应用码对象存储至mysql数据库中。
作为本发明的优选方案:所述代理对象包含代理名、代理级别、上级id,根id、是否有效、更新时间、更新人、创建时间和创建人属性。
作为本发明的优选方案:所述应用批次对象包含应用id、应用名称、类型、代理id、代理名、数量、使用次数、游戏指定配置信息、是否混合字母、有效开始时间、有效截止时间、批次状态、更新时间、更新人、创建时间、创建人。
作为本发明的优选方案:所述应用码对象包含批次号、应用id、应用名称、应用码类型、应用码、剩余的次数、应用码状态、版本号、更新时间、创建时间。
与现有技术相比,本发明的有益效果是:1、安全性高,通过35进制与随机数的算法,利用逆向思维可以做到相互转化,从而保证了应用码的安全性;2、扩展性强,可以对应1..........n中应用码类型,无限扩展,添加方便;3、唯一性,此种算法可以明确统计可以生成64339296874个批次,最多可以生成64339296874*5000个应用码,保证了应用码的唯一性;4、高性能,高性能,500并发下,响应速度能够达到1000tps.保证了应用码的存储速度。
附图说明
图1为本发明的整体步骤图;
图2为应用码生成流程图;
图3为应用码安全认证流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1、2、3,一种生成应用码的方法,包含以下步骤:A获取批次ID;B根据批次ID与生成数量生成固定数量应用码。
步骤A包括:1、通过JavaBean AppAgent创建代理对象;2、通过JavaBeanAppCodeBatch创建一个新的应用批次对象;3、通过JavaBean AppCodeBatch创建一个新的应用批次对象。
步骤B包括:①、采用***提供组件工具类进行参数校验;②、采用***提供组件工具类进行参数校验,生成之后通过javaBean AppCode创建应用码对象,③、将应用码对象存储至mysql数据库中。
代理对象包含代理名、代理级别、上级id,根id、是否有效、更新时间、更新人、创建时间和创建人属性。
应用批次对象包含应用id、应用名称、类型、代理id、代理名、数量、使用次数、游戏指定配置信息、是否混合字母、有效开始时间、有效截止时间、批次状态、更新时间、更新人、创建时间、创建人。
应用码对象包含批次号、应用id、应用名称、应用码类型、应用码、剩余的次数、应用码状态、版本号、更新时间、创建时间。
本发明的工作原理是:应用码生成限制:
①一个批次最多能生成5000个应用码,如果需要更多的应用码,需要添加多个应用码批次;
②应用码长度为固定长度为16的一组包含大写字母A-Y和数字0-9的码;
应用码前六位生成规则:
应用码的前六位在这里称之为前缀,而前缀是三十五进制的批次号号码,具体规则如下:
应用码前6位为固定的批次号信息:
a.将整型(int64)的批次号转换为35进制字符串,称之为hexBid;
b.如果hexBid长度小于6位,则后补一位Z字符,长度仍然小于6时,随机补足[2-9XD]组成的字符;
c.例如:batchId=75,生成的hexBid=25,然后进行长度补足:25Z22X,22X为随
机补足的字符串,Z为标识分隔符;
应用码后10位为该批次下的唯一的随机的字符串组成
注意:在上述规则下,最多可拥有64339296874个批次,最多可生成64339296874*5000个应用码,已经足够使用。
③将生成的应用码存储在redis缓存
基于游戏用户群里高并发的的特性,将应用码存储在redis中,很大程度上提升了应用场景的性能,本发明对redis的应用基于spring-redis。
源代码实现主要基于业界主流编程语言java,结合***组件、35进制与随机数算法批量生成应用码,在应用码存储上采用业务主流非关系型数据库redis(spring-redis组件)来提升性能,redis服务器是基于linux安装在阿里云服务上,从而提升用户体验性。
市场应用前景:
2.1.1激活码
平台激活游戏通道专用码,激活游戏后可以登录游戏。通常用于应用的技术测试、内部测试、删档测试等。
激活码通常只能使用一次,仅只能被一个帐号使用;发放给媒体的激活码可以被多次使用(多个帐号使用)。
2.1.2新手卡
实际上就是一个特殊的道具卡,但是一个游戏角色仅且只能使用一次。
2.1.3道具卡
在游戏内特定的NPC上,输入道具***可兑换礼包、装备等道具,一个角色不限制使用道具卡的次数,但一个道具卡只能被使用一次。
2.1.4公会卡
在游戏内特定的NPC上,输入公会***可兑换公会专有的礼包、装备等道具,一个角色不限制使用公会卡的次数,但一个公会***只能被使用一次。
Claims (6)
1.一种生成应用码的方法,其特征在于,包含以下步骤:
A、获取批次ID;
B、根据批次ID与生成数量生成固定数量应用码。
2.根据权利要求1所述的一种生成应用码的方法,其特征在于,所述步骤A包括:1、通过JavaBean AppAgent创建代理对象;2、通过JavaBean AppCodeBatch创建一个新的应用批次对象;3、通过JavaBean AppCodeBatch创建一个新的应用批次对象。
3.根据权利要求1所述的一种生成应用码的方法,其特征在于,所述步骤B包括:①、采用***提供组件工具类进行参数校验;②、采用***提供组件工具类进行参数校验,生成之后通过javaBean AppCode创建应用码对象,③、将应用码对象存储至mysql数据库中。
4.根据权利要求2所述的一种生成应用码的方法,其特征在于,所述代理对象包含代理名、代理级别、上级id,根id、是否有效、更新时间、更新人、创建时间和创建人属性。
5.根据权利要求2所述的一种生成应用码的方法,其特征在于,所述应用批次对象包含应用id、应用名称、类型、代理id、代理名、数量、使用次数、游戏指定配置信息、是否混合字母、有效开始时间、有效截止时间、批次状态、更新时间、更新人、创建时间、创建人。
6.根据权利要求3所述的一种生成应用码的方法,其特征在于,所述应用码对象包含批次号、应用id、应用名称、应用码类型、应用码、剩余的次数、应用码状态、版本号、更新时间、创建时间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710465066.1A CN107368297A (zh) | 2017-06-19 | 2017-06-19 | 一种生成应用码的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710465066.1A CN107368297A (zh) | 2017-06-19 | 2017-06-19 | 一种生成应用码的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107368297A true CN107368297A (zh) | 2017-11-21 |
Family
ID=60306435
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710465066.1A Pending CN107368297A (zh) | 2017-06-19 | 2017-06-19 | 一种生成应用码的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107368297A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110765738A (zh) * | 2018-07-24 | 2020-02-07 | 鸿合科技股份有限公司 | 一种生成***的***及方法、电子设备 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040205734A1 (en) * | 2000-11-30 | 2004-10-14 | Krishnamurthy Srinivasan | Dynamic notification of non java services using jini (TM) |
CN101106771A (zh) * | 2006-07-10 | 2008-01-16 | 王磊 | 手机软件加密和验证方法 |
CN101404052A (zh) * | 2008-05-04 | 2009-04-08 | 北京深思洛克软件技术股份有限公司 | 一种远程激活软件的方法 |
CN101483686A (zh) * | 2008-11-20 | 2009-07-15 | 杭州华科通信设备有限公司 | 基于ip电话运营***的数码防伪***及方法 |
CN103390239A (zh) * | 2012-05-07 | 2013-11-13 | 星全安创意行销顾问有限公司 | 电子兑换券与自动化处理电子兑换券的方法 |
UA110633C2 (uk) * | 2010-12-30 | 2016-01-25 | Діджітел Кеудінг Енд Тракінг Есеусіейшн | Спосіб і система для маркування виготовлених виробів |
CN105574737A (zh) * | 2015-12-15 | 2016-05-11 | 中国建设银行股份有限公司 | 用于生成和维护兑换码的数据处理***及方法 |
CN105931056A (zh) * | 2016-04-13 | 2016-09-07 | 孙巍 | 一种商品防伪的方法及装置 |
US20160314502A1 (en) * | 2015-04-24 | 2016-10-27 | Conversant, Inc. | System and method for streamlining the design and development process of multiple advertising units |
-
2017
- 2017-06-19 CN CN201710465066.1A patent/CN107368297A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040205734A1 (en) * | 2000-11-30 | 2004-10-14 | Krishnamurthy Srinivasan | Dynamic notification of non java services using jini (TM) |
CN101106771A (zh) * | 2006-07-10 | 2008-01-16 | 王磊 | 手机软件加密和验证方法 |
CN101404052A (zh) * | 2008-05-04 | 2009-04-08 | 北京深思洛克软件技术股份有限公司 | 一种远程激活软件的方法 |
CN101483686A (zh) * | 2008-11-20 | 2009-07-15 | 杭州华科通信设备有限公司 | 基于ip电话运营***的数码防伪***及方法 |
UA110633C2 (uk) * | 2010-12-30 | 2016-01-25 | Діджітел Кеудінг Енд Тракінг Есеусіейшн | Спосіб і система для маркування виготовлених виробів |
CN103390239A (zh) * | 2012-05-07 | 2013-11-13 | 星全安创意行销顾问有限公司 | 电子兑换券与自动化处理电子兑换券的方法 |
US20160314502A1 (en) * | 2015-04-24 | 2016-10-27 | Conversant, Inc. | System and method for streamlining the design and development process of multiple advertising units |
CN105574737A (zh) * | 2015-12-15 | 2016-05-11 | 中国建设银行股份有限公司 | 用于生成和维护兑换码的数据处理***及方法 |
CN105931056A (zh) * | 2016-04-13 | 2016-09-07 | 孙巍 | 一种商品防伪的方法及装置 |
Non-Patent Citations (2)
Title |
---|
QIANJUNYOUXI.COM: "游戏礼包的制作与推广技巧", 《HTTPS://GAME.HUANQIU.COM/ARTICLE/9CAKRNJSVZJ》 * |
撒一片暖阳: "如何设计和生成游戏的激活码", 《HTTPS://BLOG.CSDN.NET/WE_ARE_THE_WORLD_123/ARTICLE/DETAILS/72771843》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110765738A (zh) * | 2018-07-24 | 2020-02-07 | 鸿合科技股份有限公司 | 一种生成***的***及方法、电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Berger et al. | An introduction to Benford's law | |
Fortnow | The status of the P versus NP problem | |
CN109600230B (zh) | 一种区块链共识机制实现***及其实现方法 | |
CN105630590B (zh) | 一种业务信息处理方法及装置 | |
CN108200203A (zh) | 基于双层网络的区块链*** | |
Ta-Shma | On extracting randomness from weak random sources | |
CN107707477A (zh) | 报文的处理方法及装置、计算机可读存储介质 | |
Hall Jr et al. | Uniqueness of the projective plane of order eight | |
CN106712928A (zh) | 基于大数据彩虹表的解密方法和装置 | |
WO2020118856A1 (zh) | 一种可追溯防篡改芯片研发交易数据存储方法及*** | |
CN110264156A (zh) | 一种项目管理方法、装置、电子设备及存储介质 | |
CN105956921A (zh) | 一种银行***自选方法及装置 | |
Wild | Java 7's dual pivot quicksort | |
Job et al. | Recursive backtracking for solving 9* 9 Sudoku puzzle | |
CN107368297A (zh) | 一种生成应用码的方法 | |
CN105574737A (zh) | 用于生成和维护兑换码的数据处理***及方法 | |
CN110781200A (zh) | 一种区块链异常数据的处理方法、装置、设备和介质 | |
CN109241057A (zh) | 一种用于分布式***的数字id生成方法 | |
Holladay | Cartesian products of termination games | |
CN105607892A (zh) | 一种多程序的并发执行方法和*** | |
Viola et al. | One-way multiparty communication lower bound for pointer jumping with applications | |
CN106775962A (zh) | 一种规则执行方法及装置 | |
CN109726581B (zh) | 一种数据统计方法和装置 | |
CN105225153A (zh) | 数据处理方法及装置 | |
Bauer | Origins and foundations of computing: in cooperation with Heinz Nixdorf MuseumsForum |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20171121 |
|
RJ01 | Rejection of invention patent application after publication |