- 浏览: 1624387 次
- 性别:
- 来自: 福州
文章分类
- 全部博客 (583)
- strust2.0 (14)
- hibernate2.0 (5)
- java (13)
- javaScript (59)
- AJAX (8)
- TFS (6)
- 其它 (20)
- CSS (23)
- asp (18)
- Dojo (5)
- 项目管理 (3)
- SQLServer (25)
- oracle (26)
- .NET (221)
- 开源系统 (6)
- 常识 (41)
- 软件架构 (1)
- My SQL (1)
- SilverLight (10)
- Flex (1)
- window7 (1)
- 网络安全 (2)
- CMS (1)
- ECShop (4)
- 邮件系统 (9)
- Linq (0)
- 淘宝店铺经营宝典 (0)
- flash插件 (1)
- Hubble.net全文检索 (1)
- 在线编辑器 (1)
- 正则表达式 (1)
- 创业 (1)
- asp.net mvc (1)
- 全文检索 (0)
- 全文检索 HubbleDotNet (1)
- Android (27)
- TFS bin (1)
最新评论
-
z小小Jean:
有具体的解决方法吗
用命名imp导入DMP时报无法解析指定的连接标识符的解决办法 -
njoiop:
这些都是常用接口,IP地址、手机归属和身份证查询接口,基站定位 ...
IP地址、手机归属和身份证查询接口 -
Fs_sky:
那导出DMP如何包含序列等其他东西?
在plsql中如何导出dmp文件 -
qiywtc:
请问该怎么判断视频的格式再选择对应的播放格式来播放啊?
asp.net各种类型视频播放代码(全) -
xinghenhouzi:
楼主说的版本不同无法导入导出是什么意思?我用10g的exp.e ...
在plsql中如何导出dmp文件
从今天起, 您开发的的任何软件如果您愿意都可以为之加密 --为您的软件制作一款注册机!
当您看完这篇文章时, 您就可以理直气壮的告诉您的用户 : "喂, 想用我的软件是吧 ? 掏钱!".
呵呵, 这当然只是给自己壮胆的话, 现在连万能注册机都有了, 人家还怕啥 ? 不过只要您想想微软, 人家再牛B的加密技术都会被国人"鄙视"? 但人家不也在中国大把大把的捞钱吗?
OK, 不扯了, 我们进入正题.
同一般的软件注册一样, 我们这里的注册是这样进行的:
1. 首先根据用户的硬件信息生成24位的机器码
-- 相当于种子,用于生成随机数
2. 采用注册机根据特征数字生成一个24位注册码
-- 相当于伪随机数生成器, 输出长度自己定, 最后用一个格式化函数,将随机数映射到ASCII字符集合
3. 用户输入注册码注册成功
假设客户很喜欢您的软件, 也假设他没有破解, 他需要通过以下方式向您取得注册码:
(1).如果他能上网, 他需要把机器码用Email发给您;
(2).如果他不能上网, 他可以把机器码用手机短信的方式发给您.
(3).如果他没有手机, 他可以带着机器码然后坐火车到您的办公室想您要一个注册码.
--第3条只是为了让您看帖子的时候别太枯燥了, 抱歉.
现在, 您拿到了客户的机器码后, 如果您同时也收到了他汇的钱, 呵呵, 好像给软件加密就是为了要钱吧? 那么您就可以用客户的机器码生成一个唯一的注册码再用同样的方式给用户, 最后, 用户输入注册码即可!
需要强调的是客户机器的硬件信息获取方式是有很多种选择的. 这里我们选择最放心的两个硬件: CUP的序列号和硬盘的卷标号. 好了, 下面您就可以一步一步制作一款软件注册机了.
步骤一: 获得CUP序列号和硬盘序列号的实现代码如下:
步骤二: 收集硬件信息生成机器码, 代码如下:
步骤三: 使用机器码生成软件注册码, 代码如下:
步骤四: 用户输入注册码注册软件, 演示代码如下:
/////////////////////评论//////////////////////////////
我觉得这里有问题:
1、如果我要把软件注册移植到别的电脑上,不是又要重新去申请注册吗?
2、用户体验很有问题,至少我不会为了装一软件而去要注册码的
3、一般的注册码机制,是发布软件的时候生成一个唯一的GUID,然后经过处理后,发送给客户。 客户得到后通过网络注册。而不是客户自己去提供一个什么机器码
转自:http://www.cnblogs.com/ziyiFly/archive/2008/09/22/1296096.html
当您看完这篇文章时, 您就可以理直气壮的告诉您的用户 : "喂, 想用我的软件是吧 ? 掏钱!".
呵呵, 这当然只是给自己壮胆的话, 现在连万能注册机都有了, 人家还怕啥 ? 不过只要您想想微软, 人家再牛B的加密技术都会被国人"鄙视"? 但人家不也在中国大把大把的捞钱吗?
OK, 不扯了, 我们进入正题.
同一般的软件注册一样, 我们这里的注册是这样进行的:
1. 首先根据用户的硬件信息生成24位的机器码
-- 相当于种子,用于生成随机数
2. 采用注册机根据特征数字生成一个24位注册码
-- 相当于伪随机数生成器, 输出长度自己定, 最后用一个格式化函数,将随机数映射到ASCII字符集合
3. 用户输入注册码注册成功
假设客户很喜欢您的软件, 也假设他没有破解, 他需要通过以下方式向您取得注册码:
(1).如果他能上网, 他需要把机器码用Email发给您;
(2).如果他不能上网, 他可以把机器码用手机短信的方式发给您.
(3).如果他没有手机, 他可以带着机器码然后坐火车到您的办公室想您要一个注册码.
--第3条只是为了让您看帖子的时候别太枯燥了, 抱歉.
现在, 您拿到了客户的机器码后, 如果您同时也收到了他汇的钱, 呵呵, 好像给软件加密就是为了要钱吧? 那么您就可以用客户的机器码生成一个唯一的注册码再用同样的方式给用户, 最后, 用户输入注册码即可!
需要强调的是客户机器的硬件信息获取方式是有很多种选择的. 这里我们选择最放心的两个硬件: CUP的序列号和硬盘的卷标号. 好了, 下面您就可以一步一步制作一款软件注册机了.
步骤一: 获得CUP序列号和硬盘序列号的实现代码如下:
#region 获取cpu的序列号 public string getCpu() { string strCpu = null; ManagementClass myCpu = new ManagementClass("win32_Processor"); ManagementObjectCollection myCpuConnection = myCpu.GetInstances(); foreach( ManagementObject myObject in myCpuConnection) { strCpu = myObject.Properties["Processorid"].Value.ToString(); break; } return strCpu; } #endregion
#region 获取设备硬盘的卷标号 public string GetDiskVolumeSerialNumber() { ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration"); ManagementObject disk = new ManagementObject("win32_logicaldisk.deviceid=\"d:\""); disk.Get(); return disk.GetPropertyValue("VolumeSerialNumber").ToString(); } #endregion
步骤二: 收集硬件信息生成机器码, 代码如下:
private void button1_Click(object sender, EventArgs e) { label2.Text = getCpu() + GetDiskVolumeSerialNumber();//获得24位Cpu和硬盘序列号 string[] strid = new string[24]; for (int i = 0; i < 24; i++)//把字符赋给数组 { strid[i] = label2.Text.Substring(i, 1); } label2.Text = ""; Random rdid = new Random(); for (int i = 0; i < 24; i++)//从数组随机抽取24个字符组成新的字符生成机器三 { label2.Text += strid[rdid.Next(0, 24)]; } }
步骤三: 使用机器码生成软件注册码, 代码如下:
public int[] intCode = new int[127];//用于存密钥 public void setIntCode()//给数组赋值个小于10的随机数 { Random ra = new Random(); for (int i = 1; i < intCode.Length;i++ ) { intCode[i] = ra.Next(0, 9); } } public int[] intNumber = new int[25];//用于存机器码的Ascii值 public char[] Charcode = new char[25];//存储机器码字 //生成注册码 private void button2_Click(object sender, EventArgs e) { if (label2.Text != "") { setIntCode();//初始化127位数组 for (int i = 1; i < Charcode.Length; i++)//把机器码存入数组中 { Charcode[i] = Convert.ToChar(label2.Text.Substring(i - 1, 1)); }// for (int j = 1; j < intNumber.Length; j++)//把字符的ASCII值存入一个整数组中。 { intNumber[j] = intCode[Convert.ToInt32(Charcode[j])] + Convert.ToInt32(Charcode[j]); } string strAsciiName = null;//用于存储机器码 for (int j = 1; j < intNumber.Length; j++) { //MessageBox.Show((Convert.ToChar(intNumber[j])).ToString()); if (intNumber[j] >= 48 && intNumber[j] <= 57)//判断字符ASCII值是否0-9之间 { strAsciiName += Convert.ToChar(intNumber[j]).ToString(); } else if (intNumber[j] >= 65 && intNumber[j] <= 90)//判断字符ASCII值是否A-Z之间 { strAsciiName += Convert.ToChar(intNumber[j]).ToString(); } else if (intNumber[j] >= 97 && intNumber[j] <= 122)//判断字符ASCII值是否a-z之间 { strAsciiName += Convert.ToChar(intNumber[j]).ToString(); } else//判断字符ASCII值不在以上范围内 { if (intNumber[j] > 122)//判断字符ASCII值是否大于z { strAsciiName += Convert.ToChar(intNumber[j] - 10).ToString(); } else { strAsciiName += Convert.ToChar(intNumber[j] - 9).ToString(); } } label3.Text = strAsciiName;//得到注册码 } } else { MessageBox.Show("请选生成机器码","注册提示"); } }
步骤四: 用户输入注册码注册软件, 演示代码如下:
private void btnRegist_Click(object sender, EventArgs e) { if (label3.Text != "") { if (textBox1.Text.TrimEnd().Equals(label3.Text.TrimEnd())) { Microsoft.Win32.RegistryKey retkey = Microsoft.Win32.Registry.CurrentUser. OpenSubKey("software", true).CreateSubKey("ZHY").CreateSubKey("ZHY.INI"). CreateSubKey(textBox1.Text.TrimEnd()); retkey.SetValue("UserName", "MySoft"); MessageBox.Show("注册成功"); } else { MessageBox.Show("注册码输入错误"); } } else { MessageBox.Show("请生成注册码","注册提示"); } }
/////////////////////评论//////////////////////////////
我觉得这里有问题:
1、如果我要把软件注册移植到别的电脑上,不是又要重新去申请注册吗?
2、用户体验很有问题,至少我不会为了装一软件而去要注册码的
3、一般的注册码机制,是发布软件的时候生成一个唯一的GUID,然后经过处理后,发送给客户。 客户得到后通过网络注册。而不是客户自己去提供一个什么机器码
转自:http://www.cnblogs.com/ziyiFly/archive/2008/09/22/1296096.html
发表评论
-
【转】C#定时执行某个程序
2015-03-16 17:33 666using System; using System. ... -
多行文本框字符数长度验证的解决方案
2012-03-02 16:04 1159在ASP.NET系统中经常会遇到验证文本框长度,比如数据库里是 ... -
【转】asp.net(c#)通过两个点的经纬度计算距离
2012-01-12 14:14 1350原理: 地球赤道上环绕地球一周走一圈共40075.04公里 ... -
【转】GSM手机短信软件的实现(C#)
2011-11-30 13:55 1249http://www.cnblogs.com/Engin/ar ... -
[转]C#开发短信收发软件的原理
2011-11-16 16:44 1614坛子里好像很多人对如何自己用C#开发手机短信有兴趣,正好我也做 ... -
TCPClient 类实现网络互联、通信
2011-10-29 11:16 2899TcpClient 为 TCP 网络服务提供客户端连接。 S ... -
Hubble.Net实现全文检索
2011-07-25 19:30 3985一、 下载安装 到Hubble.net 项目首页 http: ... -
c# 获取当前周第一天、最后一天,当前月第一天、最后一天的实现代码
2011-04-17 18:39 5204获取当前周工作日第一天、最后一天 int dayOfWee ... -
c#通过调用7z.exe实现解压文件
2011-03-05 15:47 46047-Zip 简介 7-Zip 是一款号称有着现今最高压缩比的 ... -
【转】IEnumerable 和 IEnumerator 接口
2011-03-04 17:12 1984类继承关系:public interface IQueryab ... -
【转】C#获取文件的绝对路径
2011-03-04 17:08 2433要在c#中获取路径有好多方法,一般常用的有以下五种: ... -
ListBox之间的数据项的移动操作
2010-09-29 11:04 1513<%@ Page Language="C# ... -
【转】asp.net中URL参数传值中文乱码的三种解决办法
2010-09-21 22:31 3375在做Asp.Net开发的时候,经常会遇到页面乱码的问题,下面是 ... -
【转】ASP.NET文件下载函数
2010-09-21 22:29 1359在你的Page_Load中添加这样的代码: Page.Re ... -
【转】在ASP.NET中实现多文件上传
2010-09-21 22:25 1190在以前的Web应用中,上传文件是个很麻烦的事,现在有了.NET ... -
[转]ASP.NET中常用的文件上传下载方法
2010-09-21 22:23 1777文件的上传下载是我们在实际项目开发过程中经常需要用到的技 ... -
HTML文章中截取摘要的问题[转]
2010-06-09 10:46 1826博客系统通常的做法是,在博客的首页只显示文章的摘要,点击标题进 ... -
获取 asp:Button 控件的的ComandName值的方法
2010-05-22 17:31 1210protected void btn_Save_Click ... -
ASP.NET防止用户多次登录的方法
2010-05-06 12:34 1542常见的处理方法是,在 ... -
使用 Enter 键提交表单
2010-04-27 14:04 1302一、使用 JS 代码 我们在表单里面的 TextBox (as ...
相关推荐
给自己的软件中加个注册码程序,这样你的软件给别人用时可以制授权使用时间权限
chm制作软件(含注册码),Easy chm和quickchm,一款绿色版、一款安装版,都含注册码。值得收藏!
中文版,电子相册制作软件,亲测,好用,含注册码
QTC++ 利用 读取硬件信息生成软件注册码,这个注册码破解了也是和硬件绑定的。
舞蝶飞创意照片制作软件V3.60 注册码
jutoh汉化版是一个非常强大的电子书制作软件,与其他同类的软件相比,多了一份简单实用的特色,让小白用户都可以轻松制作。另外,在jutoh软件中,用户能够从模版中创建流行的电子书格式,比如说:自己的封面设计或者...
注册码验证器,内附生成器。Ps:代码有点乱。
镜像文件制作软件uiso9_cn(注册码)
易启动 -系统封装必备-工光盘启动制作-内含有效注册码
舞蝶飞创意照片制作软件是为不会PS的人提供的最方便的完全免费的做照片的软件工具,您不会PS也可以用它在几分钟内制作出非常精美的相片。
Anthemion Software Jutoh软件是一款非常好用且功能强大的电子书制作软件,Anthemion Software Jutoh是可以帮助你快速的创建电子书的制作软件,软件内置功能强大的向导导航和丰富的样式文本编辑器,包括一个强大的...
用vc++编写的软件注册机,生成软件注册码
充分利用强大的数据库功能给工作带来的便利,配合强大的权限管理,真正的让您从此告别手写送货单和EXCEL做月结对帐单的烦恼,打印出整齐漂亮的送货单。 1、软件简单易用、通俗易懂,提供视频教程,只需几分钟就...
小灰熊3.2版卡拉ok字幕制作软件可导出视频格式文件+注册码:内有安装说明,这版本可以直接导出视频格式字幕文件直接调到会声会影、AE、索尼vegas.pro等软件上使用。 先打开setup文件夹,双击setup.exe进行安装,安装...
生活物语 ... 静听心曲而不谈风情 涵容悲喜而不越雷池 ╭────────────────────────╮ ... │ …………………………………………………………… │ │ 本站资源均从网上搜集,版权归原作者...
易我数据恢复向导V2.1.0(附注册码) 易我数据恢复向导V2.1.0(附注册码) 易我数据恢复向导V2.1.0(附注册码) 易我数据恢复向导V2.1.0(附注册码) 绿色版本 免费下载 《易我数据恢复向导》是首款国内自主研发的...
是个不错的翻页相册flash制作软件,让你不再担心相册问题,放心使用,很优化
krpano.1.19.pr10的注册码,去水印。krpano.1.19.pr10是最新的制作全景的软件
Flash Basic 8 是 Flash Professional 8 的一个子集,包括设计简单运动图形和交互性以便发送到 Flash Player 所需的所有核心功能。它是专门为富有激情的专业人士精心设计的经济型创作环境
它寄托于传统的 SQL 语句,同时又在功能上做了不少的扩充。PL/SQL 有着太多的优势,甚至让SQL 在它面前也黯然失色。而 PL/SQL Developer 是一种集成的开发环境,专门用于开发、测试、调试和优化 Oracle PL/SQL 存储...