当前位置: 首页 > news >正文

班级网站 模板温州网站链接怎么做

班级网站 模板,温州网站链接怎么做,自学it做网站,给公司做网站生成注册码#xff08;非对称加解密#xff09; 我们再列出几种生成注册码的情况#xff1a; #xff08;1#xff09;软件生成一个机器码#xff0c;交给开发者#xff0c;开发者提供一个注册码。 #xff08;2#xff09;把用户名交给开发者#xff0c;开发者提…生成注册码非对称加解密 我们再列出几种生成注册码的情况 1软件生成一个机器码交给开发者开发者提供一个注册码。 2把用户名交给开发者开发者提供一个注册码。 3直接向开发者索取一个注册码。 在算法上这几种情况并无太大区别。如果我们有一个原始的码机器码或用户名我们把它设为x那么注册码就是x的一个函数yf(x)。如果是第三种情况那么x可能是一个随机数也可能是有效期信息等同样使用f(x)生成注册码然后把x-f(x)同时给到软件。 那其实这里的重点就是f(x)。我们以机器码为例生成注册码的流程如下 在上图中G(x)是F(x)的一个逆运算。 为了安全起见我们可以使用RSA实现F(x)和G(x)。我们在注册机一端使用私钥加密然后在软件一端使用公钥解密。有几个问题要在这里说一下 1如果我们使用C#开发的话我们会发现系统的RSACryptoServiceProvider类只能公钥加密私钥解密。我们可以使用一个名为BouncyCastle的第三库。加密解密代码如下 //RSA密钥对的构造器 RsaKeyPairGenerator keyGenerator new RsaKeyPairGenerator();//RSA密钥构造器的参数 RsaKeyGenerationParameters param new RsaKeyGenerationParameters(Org.BouncyCastle.Math.BigInteger.ValueOf(3),new SecureRandom(),192, //密钥长度 25); //用参数初始化密钥构造器 keyGenerator.Init(param); //产生密钥对 AsymmetricCipherKeyPair keyPair keyGenerator.GenerateKeyPair(); //获取公钥和密钥 AsymmetricKeyParameter publicKey keyPair.Public; AsymmetricKeyParameter privateKey keyPair.Private;SubjectPublicKeyInfo subjectPublicKeyInfo SubjectPublicKeyInfoFactory.CreateSubjectPublicKeyInfo(publicKey); Asn1Object asn1ObjectPublic subjectPublicKeyInfo.ToAsn1Object(); byte[] publicInfoByte asn1ObjectPublic.GetEncoded(UTF-8);PrivateKeyInfo privateKeyInfo PrivateKeyInfoFactory.CreatePrivateKeyInfo(privateKey); Asn1Object asn1ObjectPrivate privateKeyInfo.ToAsn1Object(); byte[] privateInfoByte asn1ObjectPrivate.GetEncoded(UTF-8);byte[] data new byte[] { 2, 3, 5, 7, 1, 2, 5, 8, 4, 2, 4 }; byte[] encrypt null; {AsymmetricKeyParameter priKey PrivateKeyFactory.CreateKey(privateInfoByte);IAsymmetricBlockCipher engine new Pkcs1Encoding(new RsaEngine());engine.Init(true, priKey);encrypt engine.ProcessBlock(data, 0, data.Length); }byte[] decrypt null; {Asn1Object pubKeyObj Asn1Object.FromByteArray(publicInfoByte);AsymmetricKeyParameter pubKey PublicKeyFactory.CreateKey(publicInfoByte);IAsymmetricBlockCipher engine new Pkcs1Encoding(new RsaEngine());engine.Init(false, pubKey);decrypt engine.ProcessBlock(encrypt, 0, encrypt.Length); } 2有人说这样的方法只要对软件进行反编译把公钥替换成自己生成的公钥就能破解。是的这并没有错。但如果能对软件反编译的话我们可以直接把判断的语句改掉例如把if(valid)改成if(true)就可以了。所以我们这里有一个假设就是破解者无法对软件进行反编译。我们可以用加壳或混淆的方式来做这里不涉及。 3最大的问题就是RSA的密钥长度很长。C#自带的RSA类要求密钥最短是384位转成16进制有96个字符太长了。即使是用上面的第三方库最短也要192位也就是48个字符。所以这种方法是没办法用在手抄注册码的场合的可以用在注册证书也就是文件存放注册码。
http://www.w-s-a.com/news/522078/

相关文章:

  • asp官方网站微信模板素材
  • wordpress 留言给站长发邮件做百度推广员赚钱吗
  • 北京建站公司做网站价格专门找人做软件的网站
  • 商务网站的特点ui软件界面设计
  • 广州个性化网站开发网站索引量是什么意思
  • 公司网站制作专业公司python做后台网站的多吗
  • 桂林建站平台哪家好给别人做网站怎么收取费用
  • python做网站显示表格用visual做的网站
  • 彩票网站建设需要什么聊城网站建设首选天成网络
  • 安徽建设工程网站wordpress标签云代码
  • 推荐佛山顺德网站建设手机网站建设域名空间
  • 电子商务网站建设策划书例子企业官网用什么cms系统
  • 网站栏目设计怎么写平面设计接单报价表
  • 做网站美工要学什么网站推广的方法包括
  • 哪个网站可以做笔译兼职wordpress加表单
  • 百度站内搜索 wordpress微餐饮建站费用
  • 用什么做网站的访问量统计制作手工作品
  • 微信公众号搭建网站河南卫生基层系统网站建设
  • steam账号注册网站重庆手机版建站系统哪家好
  • 中新生态城建设局门户网站wordpress云盘视频播放
  • 大型网站开发基本流程wordpress记录用户搜索
  • 云服务器安装win系统做网站wordpress边栏扩大尺寸
  • 网站开发面试自我介绍软件下载网站如何建设
  • 可以做翻译任务的网站陕西省建设厅八大员证
  • 昆明 网站推广重庆网页优化seo公司
  • 网站排名下降怎么上去设计一套app页面多少钱
  • 专门用来查找网址的网站查公司名字是否被注册
  • 自己创建网站教程河南省建设厅官方网站李学军
  • 一个网站需要多少容量怎样免费设计网站建设
  • 建设工程交易中心网站12306的网站是哪个公司做的