=====关于b/s模式的软件注册与试用?======

bcwzj 2007-02-01 03:17:53
我现在用vs2003做了一个b/s模式的软件,现在想通过在用户登陆的时候,先检测用户注册表,检测其是否已经注册过,如果没有注册的话,就自动跳到注册页面进行注册,想获取cpu序列号,我看了网上的,都是c/s模式的,那样的话,是获取的客户端的硬件,那样是不行的啊,请问大家,有没有什么好的解决方案啊,只要是有效的,都给分
...全文
319 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuxun 2007-05-07
  • 打赏
  • 举报
回复
xx
修哲 2007-03-12
  • 打赏
  • 举报
回复
这个是一个类,把它编译成dll,你就可以直接用了,是des
using System;
using System.IO;
using System.Security.Cryptography;

namespace bh
{
/// <summary>
/// Security 的摘要说明。
/// </summary>
public class Security
{
const string KEY_64 = "xxxxxxxx";
const string IV_64 = "xxxxxxxx"; //注意了,是8个字符,64位
public Security()
{
//
// TODO: 在此处添加构造函数逻辑
//
}

public static string Encode(string data) //加密
{
byte[] byKey = System.Text.ASCIIEncoding.ASCII.GetBytes(KEY_64);
byte[] byIV = System.Text.ASCIIEncoding.ASCII.GetBytes(IV_64);

DESCryptoServiceProvider cryptoProvider = new DESCryptoServiceProvider();
int i = cryptoProvider.KeySize;
MemoryStream ms = new MemoryStream();
CryptoStream cst = new CryptoStream(ms,cryptoProvider.CreateEncryptor(byKey,byIV),CryptoStreamMode.Write);

StreamWriter sw = new StreamWriter(cst);
sw.Write(data);
sw.Flush();
cst.FlushFinalBlock();
sw.Flush();
return Convert.ToBase64String(ms.GetBuffer(),0,(int)ms.Length);

}

public static string Decode(string data) //解密
{
byte[] byKey = System.Text.ASCIIEncoding.ASCII.GetBytes(KEY_64);
byte[] byIV = System.Text.ASCIIEncoding.ASCII.GetBytes(IV_64);

byte[] byEnc;
try
{
byEnc = Convert.FromBase64String(data);
}
catch
{
return null;
}

DESCryptoServiceProvider cryptoProvider = new DESCryptoServiceProvider();
MemoryStream ms = new MemoryStream(byEnc);
CryptoStream cst = new CryptoStream(ms,cryptoProvider.CreateDecryptor(byKey,byIV),CryptoStreamMode.Read);
StreamReader sr = new StreamReader(cst);
return sr.ReadToEnd();
}
}
}
bcwzj 2007-02-02
  • 打赏
  • 举报
回复
有没有人给出MD5的加密和解密源码,或者Des的也可以,给完立刻揭贴
nov30th 2007-02-01
  • 打赏
  • 举报
回复
这个我也在考虑~

首先都封装成一个DLL,然后使用混淆。这样可以最大程度减少反编译。

然后可以判断或者绑定 授权的域名,比如 www.nov30th.com然后跟一些字符串得到
www.nov30th.com#$@%$#$@123333333 这些当然不能让客户知道的,最后用SHA1或者MD5放入数据库。(域名,加密后的字符串)

启动时把域名和加密的对比(即重新加密域名和数据库的对比。这个要同时读取,不要使用WHERE,防止用户用SQL监视,否则不写入APP变量)读到App网站全局变量中。 有访问时判断即可。否则为非授权的使用。

这个是我的思路。

顺便接分
bcwzj 2007-02-01
  • 打赏
  • 举报
回复
我取的是服务器端的,本来就不要取客户端的
心晴Sunheart 2007-02-01
  • 打赏
  • 举报
回复
你这种方式肯定不行的,b/s的系统取不到客户的注册表(非windows系统没有注册表)和硬件信息
就直接用登陆验证就可以了呀
把用户写在一个用户表中
bcwzj 2007-02-01
  • 打赏
  • 举报
回复
这个是加密吧,解密过程如何写呢?
cpp2017 2007-02-01
  • 打赏
  • 举报
回复
MD5的: public static string GetMD5EncryptString(string sInput) { System.Security.Cryptography.MD5CryptoServiceProvider obj = new System.Security.Cryptography.MD5CryptoServiceProvider(); byte[] b = System.Text.Encoding.Default.GetBytes(sInput); b= obj.ComputeHash(b,0,b.Length); string res =""; for (int i=0;i<b.Length;i++) { res += b[i].ToString("X").PadLeft(2,'0'); } obj = null; return res; }
bcwzj 2007-02-01
  • 打赏
  • 举报
回复
能不能提供源代码参考一下啊
cpp2017 2007-02-01
  • 打赏
  • 举报
回复
可用md5或des加密,.net提供了相关的对象.网上搜索一下.很多.
bcwzj 2007-02-01
  • 打赏
  • 举报
回复
我现在是可以获得服务器上的cpu序列号,我如何根据这个序列号生成一个授权码呢,这个里面有个加密与解密的过程,谁可以提供这个加密与解密的方法啊?
jiahongfu 2007-02-01
  • 打赏
  • 举报
回复
数据库里放 加密的 注册信息 程序里读取

如果你有完好的WEBSERVIS 那就 远程授权一下也可以
cpp2017 2007-02-01
  • 打赏
  • 举报
回复
为什么要用注册表呢?注册信息放在数据库就可以了. b/s是无法得到客户端的硬件信息的.
lizhizhe2000 2007-02-01
  • 打赏
  • 举报
回复

设置一个试用期,试用期过后提醒用户!
不要用C/S的模式来做B/S

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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