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

html5 网站 源码做微商如何引流推广怎么找客源

html5 网站 源码,做微商如何引流推广怎么找客源,吉林市网站推广,web和网站的区别生成注册码(非对称加解密) 我们再列出几种生成注册码的情况: (1)软件生成一个机器码,交给开发者,开发者提供一个注册码。 (2)把用户名交给开发者,开发者提…

生成注册码(非对称加解密)

我们再列出几种生成注册码的情况:

(1)软件生成一个机器码,交给开发者,开发者提供一个注册码。

(2)把用户名交给开发者,开发者提供一个注册码。

(3)直接向开发者索取一个注册码。

在算法上,这几种情况并无太大区别。如果我们有一个原始的码(机器码或用户名),我们把它设为x,那么注册码就是x的一个函数y=f(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.mmbaike.com/news/30004.html

相关文章:

  • 做外贸网站违法吗百度互联网营销顾问
  • 网站软件免费下载安装网络推广公司经营范围
  • 青岛建手机网站哪家好怎么去推广自己的产品
  • 用网站百度入口官网
  • 偷拍男女宾馆做爰网站爆款采集推广引流软件
  • 苏州免费网站制作下载班级优化大师app
  • 什么网站程序适合做seo网站推广优化排名
  • wordpress时间邀请码深圳seo专家
  • 企业网站备案那么麻烦吗seo谷歌外贸推广
  • 海外电商平台排行榜前十名百度seo简爱
  • 外贸类网站刷seo关键词排名软件
  • 做网站的软件电子站内seo内容优化包括
  • 富阳网站建站公司哪家好百度站长工具排名
  • 户外俱乐部网站模板苏州百度关键词优化
  • 广州做网站公司站长查询
  • 网站建设哪里最便宜云服务器
  • 装饰公司为什么做网站竞价网络推广外包
  • 网页可视化编辑百度网络优化
  • 做网站注册公司推广普通话手抄报内容资料
  • 制作网页的网站费用属于资本性支出吗个人引流推广怎么做
  • wordpress中文版会员中心专业搜索引擎seo服务商
  • 购物网站 后台软件外包企业排名
  • 工作是套模板做网站什么是优化设计
  • 把网站做成微信小程序如何快速提升自己
  • 企业网站制作设appstore关键词优化
  • 家装网站建设多少钱北京网站优化效果
  • 婚恋网站建设的目的网络推广营销
  • 做的网站需要买什么服务器百度百度一下
  • 极速网站推广专家营销策划公司名字
  • 哈尔滨做网站哪家好强抖音seo排名系统