软件凭激活码使用怎么做?

货郎大叔 2019-07-13 12:08:06
做了一款软件,客户要求,软件凭激活码才能使用,也就是由他发激活码给别人,别人才能使用软件。请问这个怎么做的?
...全文
566 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
m0_46283882 2020-02-07
  • 打赏
  • 举报
回复
引用 1 楼 <span style="color:#4788C7">骑着蜗牛登珠峰</span>的回复:
设计一文件或者表用于存放注册信息可以是最后到期的日期(自己设计加密算法加密) 在输入用户名和密码登入时,检查在使用期限内直接进入,过期就提示输入注册码
<br />怎么联系你?你加我微信好吗aaabbbjie
夏言泽 2019-07-18
  • 打赏
  • 举报
回复
把验证码发给他咯
XBodhi. 2019-07-13
  • 打赏
  • 举报
回复
第一先确定是离线授权还是在线授权。
第二保障软件的代码的唯一性防止别人逆向工程破解。

如果是在线授权,先做一个授权服务来通过私钥和公钥进行交换解密是否有权限
如果是离线授权,需要做好对机器码的计算和时间的管理。
如果有闪存,可以通过USB读取闪存。
也可以通过生产授权文件。
  • 打赏
  • 举报
回复
public Boolean CheckRegister() { string sLogonLastDate = getValue("s_event_log", "zzdate", "1=1 order by zzdate desc", "T"); string ps = MainClass.Mymethod.ReadINI("Setting", "PassWord1", null); DSTp = MyClass.getDataSet("select top 1 *,getdate() as ServerDate from s_check order by zzid desc", "tp", "log3", "DATA"); if (DSTp.Tables[0].Rows.Count < 1) { MessageBox.Show("注册信息错误,请输入注册码重新注册!TB", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Stop); frmRegister rg = new frmRegister(); rg.LTitle.Text = "注册信息错误,请输入注册码重新注册!"; rg.ShowDialog(); return false; } if (Convert.ToDateTime(System.DateTime.Now.ToString("yyyy-MM-dd")) != Convert.ToDateTime(Convert.ToDateTime(DSTp.Tables[0].Rows[0]["ServerDate"].ToString()).ToString("yyyy-MM-dd")) || Convert.ToDateTime(Convert.ToDateTime(DSTp.Tables[0].Rows[0]["ServerDate"].ToString()).ToString("yyyy-MM-dd")) != Convert.ToDateTime(Convert.ToDateTime(sLogonLastDate).ToString("yyyy-MM-dd"))) { MessageBox.Show("当前电脑日期可能存在问题,请修改日期后继续!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Stop); return false; } if (ps.Trim() != DSTp.Tables[0].Rows[0]["zzdes"].ToString().Trim()) { MessageBox.Show("注册信息错误,请输入注册码重新注册!S", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Stop); frmRegister rg = new frmRegister(); rg.LTitle.Text = "注册信息错误,请输入注册码重新注册!"; rg.ShowDialog(); return false; } string sLastDate = crypto.Decrypt(DSTp.Tables[0].Rows[0]["zzcheck"].ToString().Trim(), ps); if (IsDateFormat(sLastDate) != true) { MessageBox.Show("注册信息错误,请输入注册码重新注册!LD", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Stop); frmRegister rg = new frmRegister(); rg.LTitle.Text = "注册信息错误,请输入注册码重新注册!"; rg.ShowDialog(); return false; } if (System.DateTime.Now > Convert.ToDateTime(sLastDate))// || Convert.ToDateTime(sLogonLastDate)> Convert.ToDateTime(sLastDate) { if (System.DateTime.Now > Convert.ToDateTime(sLastDate).AddDays(7)) { frmRegister rg = new frmRegister(); //rg.LTitle.Text = "软件已过服务期限,如果需要继续使用请续费!"; rg.ShowDialog(); return false; } else { TimeSpan ds = Convert.ToDateTime(sLastDate).AddDays(7) - System.DateTime.Now; MessageBox.Show("系统服务已到期,请续费!否则将于" + Convert.ToInt32(ds.Days).ToString() + "天后将会被停止使用", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Stop); return true; } } return true; }
  • 打赏
  • 举报
回复
设计一文件或者表用于存放注册信息可以是最后到期的日期(自己设计加密算法加密) 在输入用户名和密码登入时,检查在使用期限内直接进入,过期就提示输入注册码

110,566

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧