动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
电脑书籍下载:程序设计书籍 | 数据库教程书籍 | 平面与多媒体书籍 | 网络通讯书籍 | 系统管理书籍 | 网络安全书籍 | 认证考试书籍
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > ASP.NET技巧
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ ASP.NET技巧 ]的信息



本月文章推荐
.在ASP.Net 2.0中实现多语言界面的.
.在VS2003中直接用DREAMWEAVER8打.
.开发手记之实现web.config的快速.
.ASP.NET 2.0高级数据处理之处理N.
.Access 通用数据访问类(asp.net .
.asp.net开发wap程序必备:识别来.
.创建ASP.NET程序时候发生错误"HT.
.Asp.net2.0:如何使用ObjectData.
.ASP.NET2.0自动搜索文件组成导航.
.提高ASP.Net应用程序性能的十大方.
.net中统一的存储过程调用方法.
.asp.net 2.0 缓存(理论篇) .
.从数据库导出数据到word、excel、.
.安装好.net之后如何运行asp.net程.
.如何在GridView中一次性批量更新.
.ASP.NET 翻页后继续维持排序.
.用gridview显示来自excel表格里的.
.asp.net(C#)海量数据表高效率分页.
.ASP.NET中同时支持简体和繁体中文.
.发布一个好用的类SafeConvert, 用.

使用.NET自带的功能制作简单的注册码

发表日期:2006-12-4 |


加密可以帮助保护数据不被查看和修改,并且可以帮助在本不安全的信道上提供安全的通信方式。例如,可以使用加密算法对数据进行加密,在加密状态下传输数据,然后由预定的接收方对数据进行解密。如果第三方截获了加密的数据,解密数据是很困难的。

为了达到这些目的,您可以使用算法和惯例的组合(称作加密基元)来创建加密方案。包括私钥加密(对称加密)、公钥加密(不对称加密)、加密签名和加密哈希。

我们使用公钥加密(不对称加密)来实现注册码的算法。

公钥加密使用一个必须对未经授权的用户保密的私钥和一个可以对任何人公开的公钥。公钥和私钥都在数学上相关联;用公钥加密的数据只能用私钥解密,而用私钥签名的数据只能用公钥验证。

对于注册码来说,我们使用私钥来对一个字符串(用户名)签名,然后使用公钥对这个签名(注册码)进行验证。由于公钥只能用于验证,所以我们可以放心把公钥分发出去;私钥匙用来进行签名的,所以私钥匙要保存在开发者手中的。这样就达到了注册认证的目的。目前使用“用户名、注册码”模式注册的软件都应该是使用这一技术。

首先我们生成自己要使用的一个公钥和私钥。

Private rsa As New Security.Cryptography.RSACryptoServiceProvider

RSACryptoServiceProvider类提供RSA算法的实现执行不对称加密和解密。通过ToXMLString就可以生成我们需要的公钥和私钥。

rsa.ToXmlString(False)

rsa.ToXmlString(True)

当参数为False的时候,仅生成公钥;True的时候将会把公钥和私钥全部生成。我们一般通过ToXmlString(False)得到一个公钥字符串;通过ToXmlString(True)得到一个私钥字符串(虽然其中含有公钥)。我们可以将这两个密钥保存在本机上面,通过字符串常量定义并使用。也就是说我们的注册信息将使用唯一的公钥和私钥。

 

然后我们通过公钥和私钥对指定的字符串进行签名。

rsa.FromXmlString(PRIVATE_KEY)

Dim f As New Security.Cryptography.RSAPKCS1SignatureFormatter(rsa)

f.SetHashAlgorithm("SHA1")

Dim source() As Byte = System.Text.ASCIIEncoding.ASCII.GetBytes(UID)

Dim sha As New Security.Cryptography.SHA1Managed

Dim result() As Byte = sha.ComputeHash(source)

Dim regkey() As Byte = f.CreateSignature(result)

SerialNumber = Convert.ToBase64String(regkey)

通过刚才得到的私钥重新初始化rsa对象,然后通过RSAPKCS1SignatureFormatter类来进行签名。我们将输入的字符串转化成字节数组(我们这里默认用户名只能由ASCII字符组成),通过SHA1哈西算法计算其哈希值。再使用CreateSignature方法将得到的哈西值进行签名。最后我们将得到的字节数组转化成字符串作为注册码。这就是生成注册码的过程。我们可以重复使用这一段程序对不同的用户名进行签名,从而得到与之对应的不同注册码。

 

最后我们把刚才得到的用户名和注册码进行验证。

rsa.FromXmlString(PUBLIC_KEY)

Dim f As New Security.Cryptography.RSAPKCS1SignatureDeformatter(rsa)

f.SetHashAlgorithm("SHA1")

Dim key() As Byte = Convert.FromBase64String(SerialNumber)

Dim sha As New Security.Cryptography.SHA1Managed

Dim name() As Byte = sha.ComputeHash(System.Text.ASCIIEncoding.ASCII.GetBytes(UID))

Result = f.VerifySignature(name, key)

这一次我们使用公钥来初始化rsa对象,然后通过RSAPKCS1SignatureDeformatter类来验证签名。我们将得到的注册码反向转化为字节数组;并将用户名进行哈西计算得到哈西值。最后通过VerifySignature进行验证。

 
从上面的程序可以看出,生成注册码需要私钥(私钥内附带公钥信息),而且可以生成任意多的用户名、注册码对。而通过公钥,我们只能进行验证而不能生成。所以公钥可以放心的发放给所有的用户进行验证,而私钥却不能。所以在发行的版本中可以附带公钥和验证算法。因为即便用户得到了公钥和验证算法也无法简单的破解。

现在网络上流行的注册机,很大程度上是破解了软件的私钥,从而达到无限制的生成所需要的注册信息。但是如果用户反编译你的产品,并且修改了中间代码,那么它将会绕过注册的判断逻辑。这就不是这一篇所能解决的问题了。因为即是你使用了Web Service技术进行在线激活或注册,还是可以通过网络侦听来分析服务器的信息,模拟一个假的服务器来进行的。
http://www.cnblogs.com/farrio/archive/2006/12/01/579296.html

上一篇:ASP.NET—From验证:全部代码及讲解 人气:4178
下一篇:如何在IE右键菜单中添加菜单项以及如何添加IE任务栏按钮 人气:4123
浏览全部asp.net的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-7-23 Menalto Gallery v2.3 Rc1 多国语
2008-7-23 深度学习网址导航系统 v2.6.1
2008-7-23 因特达crm2008客户关系管理系统
2008-7-23 60度 CMS v1.0 Build 080723
2008-7-23 幻影动漫网视频系统(Ppdong) v1.
2008-7-23 好易祝福墙 2008
2008-7-23 APJE私服发布系统 v2.0 PHP版
2008-7-23 毕业论文在线指导系统源码
2008-7-23 Jacky法律在线网站源码
2008-7-19 UltraEdit 简体中文增强版 14.10
2008-7-19 CentOS 5.2 i386 LiveCD
2008-7-19 Snapture多功能相机 v1.4
2008-7-19 iAcces中文输入法 v1.0Build016
2008-7-19 Cookbook烹饪秘籍 v2.5
2008-7-19 苹果专用DVD转换工具 v1.1.59汉化
2008-7-19 Modem修复软件ZiPhone修改版04.0
2008-7-19 AgileMessenger即时通讯工具美化
2008-7-19 Sketches画图软件 v0.7b6破解版


  发表评论
姓 名: 验证码:
内 容:
[ 汉字翻译拼音 ] [ 广告代码 ] [ 符号对照表 ] [ 进制转换 ] [ 经典小工具 ] [ 个税计算 ] [ 汉字简繁转换 ] [ 普通单位换算 ] [ 公制单位换算 ]
[ 生辰老黄历 ] [ 国内电话区号 ] [ 国家代码与域名缩写 ] [ 文字加密解密 ] [ 健康查询 ] [ 万年历 ] [ 手机号码查询 ] [ ip搜索 ] [ Google PR查询 ]
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報
防水工事·改修工事 フットサル大会 探偵