一种基于RSA+AES算法实现的软件授权License设计思路(附源码)本篇文章通过介绍基础加密算法知识结合软件授权激活

AES(AdvancedEncryptionStandard)加密算法,在密码学中又称Rijndael加密算法,是一种区块加密标准算法。AES加密算法由美国国家标准与技术研究(NIST)于2001年11月26日发布于FIPSPUB197,并在2002年5月26日成为有效的标准。现在AES加密算法已然成为对称密钥加密中最流行的算法之一。

RSA(RonRivest、AdiShamir、LeonardAdleman,3个提出者的姓氏首字母)加密算法是一种非对称加密算法(公钥加密算法)。RSA加密算法有一对密钥,一个是公开密钥,另一个是私有密钥,公钥用作加密,私钥则用作解密。使用公钥把加密后所得的密文,只能用相对应的私钥才能解密并得到原本的明文。

RSA的原理基于一个简单的数论知识:对两个互质的大数乘积进行因式分解很困难。RSA加密算法有两种应用模式,分别为加解密模式、签名验签模式。

RSA加解密模式是指采用公钥加密,私钥解密的模式。其应用为:需要加密明文数据并解密的场景。发送方将公钥加密后的密文发送给接收方,接收方用私钥解密密文后即可得到明文。

RSA签名验签模式则是网文中常见的所谓**“私钥加密,公钥解密”的逻辑。它其实是指采用私钥签名,公钥验签的模式,其应用为:需要给一条消息署名的场景。发送方将明文+私钥签名后的明文摘要消息发送给接收方,接收方用公钥解密出来私钥签名后的明文摘要**,并计算出发送方传输过来的明文的摘要进行比对,一致则验签成功。常用数字签名算法有:MD5withRSA、SHA1withRSA、SHA256withRSA。

一般来说,对称算法比非对称算法的加解密速度要快得多,并且RSA加密算法加密的长度有效,单次加密最大不大于密钥长度。因此实际使用中一般会结合RSA+AES两者使用,这也是为什么要用RSA算法签名摘要或者加密AES密钥的原因,提高效率的同时规避加密长度限制。

比如在HTTPS通信中的TLS(TransportLayerSecurity,其前身是安全套接层SecureSocketsLayer,缩写:SSL)安全协议,握手时采用RSA算法加密随机数与对话密钥,握手成功后就采用AES算法进行对称加密通信。

话不多说,上(伪)代码:

License=AesKey16+AesEnc(data).length+AesEnc(data)+RsaSign(AesEnc(data));License:就是最终生成的激活码字符串;

AesKey16:随机生成的16位AES密钥,选用固定长度密钥,因此不用拼接AesKey长度;

生成逻辑:

看到这里,也许有人会说:万一你这激活码生成规则被人知道了,怎么防止别人破解伪造啊?

激活码生成示例:

publicstaticStringgetLic(licenseBeanbean){Stringlic="";try{StringaesKey=MyUtil.getRandomString(16);StringencData=AesUtil.encrypt(aesKey,bean.toJson());StringencDataLength=Integer.toHexString(encData.length());Stringsign=RSAUtil.sign(RSA_PRI_KEY,encData);lic=aesKey+encDataLength+encData+sign;Log.d("bruce",lic);returnlic;}catch(Exceptione){e.printStackTrace();returnlic;}}一个激活码样例:

11Tf2wg9JjXeuvKTd8m4QwVfLJczRej06EAVut7coeJf3iSBDAkEl3E6faNYnG3SwiRbNBtSTmW+oRJ0kLVZf8ZIWeDQecyUqfBMiCwkYkPK4PAsmCK+kWd/aAZ+90t9QSZTq/qe4VQzkFuAk9a7D+vcF4e3BkVUovZuzB9XvmdIrNw8menjFLdWE+S0YD+VIs7AS8wUBBdA9+aH9/mZ8Oc53klslYT0mGGtTK0g==YRjmOKNaA5hA4hTAmHAK8LvRWjJqzKbGpxALd3V9dcX6Ln1ImKw0NhAVflAA5asyD4eaoafExlclCU+ayd2CyHpFmlIKTd4Uzh20y5Qke03WrGMWgSEaCgz+mZrihX0nwoyg5GXuOI0/dqOplX7mf+mSd8wgk9d2paOBvm5+ea4=

既然我们已经生成了激活码,那在校验时无非就是读取License,按照我们设计激活码时拼接的规则进行截取、校验。

THE END
1.OpenAIPerplexity都在用的AI编辑器,成了硅谷码农最爱Anysphere 自诩为应用研究实验室,致力于提高软件开发过程的效率,其使命是彻底改变编程的定义,助力全球开发者专注于更宏大的问题。为此,Anysphere 开发了一个高效的 AI 编程工具 Cursor。从去年年初发布至今,Cursor 经历了 3 次重大的版本更新和近 40 次的功能迭代,不断引入新的 AI 模型、优化用户界面和体验、https://baijiahao.baidu.com/s?id=1808442395942728406&wfr=spider&for=pc
2.软件算法工程师是做什么的软件算法工程师就业前景猎聘为您提供软件算法工程师岗位职责, 软件算法工程师就业前景,软件算法工程师薪资待遇,软件算法工程师简历模板,软件算法工程师招聘信息等内容,为您选择软件算法工程师工作提供有价值的参考。https://www.liepin.com/jobsruanjiansfgcs/
3.算法开发常用软件列表算法软件有哪些文章浏览阅读2.5k次。硬件载体OA电脑配置:i5/16G/256SSD/1T HDD 工作站配置:i9/8核/32G/2TSSD/6THDD/RTX3080 显示器2台软件载体软件名称 硬件载体 windows10 OA电脑 ubuntu 16.04 工作站 Astash/EA OA电脑 Xmind OA电脑 BeyondCompare OA电脑 UltraEdithttps://blog.csdn.net/ustczhng2012/article/details/109596606
4.MCU测量交流电方案与写法思路漫谈软件检波是即直接把被测信号送入ADC采集,单片机通过程序计算参数,优点是精度高,集成度高,电路简单可靠,功能强大,可以实现复杂算法,并且参数调整方便,因此逐渐成为主流。本文中除了必要的模拟前端电路,都是采用算法软件检波。 峰值检波 峰值的概念最简单,即最大值。也是正弦波的幅度。https://oshwhub.com/article/MCUce-liang-jiao-liu-dian-fang-an-yu-sai-lu-man-tan
5.几种常见的软件算法petercao几种常见的软件算法,包括它们的原理、实现步骤以及时间空间复杂度。以下是对这些算法的详细归纳总结: 快速排序法 (Quick Sort) 原理:使用分治法策略,通过选取基准值将列表分为两部分,一部分包含小于基准值的元素,另一部分包含大于基准值的元素。 实现步骤: 选择基准https://www.cnblogs.com/bluestorm/p/18308091
6.算法管理系统软件有哪些近年来,随着人工智能、大数据等技术的发展,算法在各个领域中扮演着越来越重要的角色。而算法管理系统软件正是为了帮助企业进行算法的开发、测试、管理等环节而产生的。本文将以测评专家的角度,推荐5款比较热门的算法管理系统软件或产品。 1. 云从科技算法平台 https://www.36dianping.com/news/16118.html
7.算法助手2.2软件免费下载算法助手2.2是一款相较于同类型软件功能更为强大的系统工具软件,在算法助手2.2软件里,用户将体验到和其他同类型软件不一样的操作特色,获得更为良好的视同体验。同时,可以获得各种app的详细信息,还有其他各种方便的功能,用户在这个平台里面可以对自己的手机安全进行相应的测试,赶快来下载到手机上体验吧! https://www.efusc.com/soft/96326.html
8.软件设计师考点七:数据结构与算法基础软件设计师摘要:2019年软件设计师考试已经进入冲刺阶段,希赛网软考频道小编为大家整理了软件设计师知识点,以下为软件设计师知识点七:数据结构与算法基础。 第7章:数据结构与算法基础 【知识点梳理】 知识点1、数组与矩阵(★★) 【考法分析】 1、本知识点的考查形式主要有:给定一些数组或矩阵,计算对应某个元素的存放位置或https://www.educity.cn/rk/1970488.html
9.通用算法工具免费下载通用算法工具PC下载通用算法工具是一款专门为软件程序编写设计的软件,用户在使用中可以进行编译各种语言、计算指定的数据等,操作简单,使用起来是非常方便的,用户可以放心的进行使用,功能强大,操作便捷,感兴趣的小伙伴不要犹豫快来安装使用吧。 软件特色 通用算法工具使用起来操作非常简单,用户可以轻松上手使用。 https://soft.3dmgame.com/down/231632.html
10.通用算法工具通用算法工具由高手网民自做的通用算法工具,集成化了各种各样常见算法作用,适用RSA、DES、编码转换、Base64、异或运算、Hash运算等算法,算较为全方位了,不用其他不必要工具了,十分便捷。 【软件表明】 很全的算法工具,适用RSA运算、DES运算、编码转换等算法集成化,碰到难题可在软件问题反馈与提议中往创作者邮件发送。 https://xiazai.zol.com.cn/detail/53/529790.shtml
11.仓库管理员要懂什么软件零代码企业数字化知识站库存优化算法软件利用复杂的数学模型和算法来优化库存水平。这种软件通过预测需求和供应变动,提供最佳的库存策略,确保库存水平既不超额也不匮乏。库存优化算法软件通常集成在ERP或WMS系统中,提供更为先进的库存管理功能。 这些算法可以根据历史数据、市场趋势以及其他变量进行自动调整,帮助仓库管理员做出更为科学和高效的决策https://www.jiandaoyun.com/blog/article/81434/
12.各大仿真软件介绍(包括算法,原理)51CTO博客各大仿真软件介绍(包括算法,原理) 1.引言 微波系统的设计越来越复杂,对电路的指标要求越来越高,电路的功能越来越多,电路的尺寸要求越做越小,而设计周期却越来越短。传统的设计方法已经不能满足系统设计的需要,使用微波EDA软件工具进行微波元器件与微波系统的设计已经成为微波电路设计的必然趋势。随着单片集成电路技术https://blog.51cto.com/liunn/223339
13.北航软件学院招收2024年硕士研究生自命题考试大纲(991《软件工程基础综合》考研内容包括数据结构与算法、软件工程和操作系统三部分内容,各占三分之一,各部分考试范围如下。 第一部分:数据结构与算法 一、绪论 包括但不限于数据结构和算法的基本概念,主要内容有:数据的逻辑结构与存储结构;算法的定义、基本性质和算法分析的基本概念,包括采用大O形式表示时间复杂度和空间复https://soft.buaa.edu.cn/news_nry.jsp?urltype=news.NewsContentUrl&wbtreeid=1325&wbnewsid=10683
14.海康海康机器人VM算法平台教育版发布,助力机器视觉人才培养作为机器视觉硬件和算法软件平台的提供商,海康机器人积极参与一系列教育计划,除了机器视觉认证培训外,还有高校合作、教育赛事等,致力于为高等院校、科研机构提供更高性价比的产品选择,完善的营销网络和贴心的售后服务,让更多优秀的高技能人才和新锐应用脱颖而出,助力教育科研的腾飞。 https://www.imrobotic.com/news/detail/29475
15.一文解析汽车智能座舱操作系统的发展随着智能座舱领域以及驾驶辅助功能的不断升级,必然伴随传感器数量的提高、芯片算力要求的提高,基于软件定义汽车的共识,芯片、操作系统、中间件、应用算法软件、数据是实现智能座舱的关键因素。对汽车的架构及座舱的实现方式进行梳理,同时结合一汽红旗H9、E-HS9车型的实践,对汽车座舱操作系统的现状和趋势进行分析,探讨在新一https://www.yoojia.com/ask/17-11789842102638598204.html