这个注册加密算法怎么算啊?刚接触编程不看不懂
源码internal string Creat_Code(string s)
{
s = s.Replace("http", "");
s = s.Replace("/", "");
s = s.Replace(":", "");
s = s.Replace(".", "");
s = s + "goodkdhfd%$$h";
string str = this.MD5_Method(s);
string str2 = str.Substring(1, 5);
string str3 = str.Substring(6, 5);
string str4 = str.Substring(11, 5);
string str5 = str.Substring(0x10, 5); /*我就想知道这句市什么意思,其它的已经明白了*/
return (str2 + "-" + str3 + "-" + str4 + "-" + str5);
}
0x标示16进制
0x10就相当余0+16的0次方加上1*16的1次方 结果为16
在举个例子嘛
0x115 表示5+16的0次方加上1*16的2次方加上1*16的1次方 结果为277
三个例子 呵呵
0x24 标示4+16的0次方加上2*16的1次方 结果36
就这样了 还有一种就是在0x后面根了字母
在0x后面只能跟a、b、c、d、e、f
让后分别代表的数字为10、11、12、13、14、15
如0xa5
就是10*16的1次方加上5*16的0次方
同理0xf4
就是15*16的1次方加上4*16的0次方 明白了~~~谢谢~~~很详细 不过还是有问题~~我按照这个算法计算出来的注册码不能注册
下面的市源代码
using System;
using System.Configuration;
using System.Web;
using System.Web.Security;
public class Program
{
private string code;
private string key;
private string regcode;
private string webUrl;
public Program()
{
}
public Program(string url)
{
this.webUrl = url;
}
public Program(string regcode, string code)
{
this.code = code;
this.regcode = regcode;
}
internal string Creat_Code(string s)
{
s = s.Replace("http", "");
s = s.Replace("/", "");
s = s.Replace(":", "");
s = s.Replace(".", "");
s = s + "goodkdhfd%$$h";
string str = this.MD5_Method(s);
string str2 = str.Substring(1, 5);
string str3 = str.Substring(6, 5);
string str4 = str.Substring(11, 5);
string str5 = str.Substring(0x10, 5);
return (str2 + "-" + str3 + "-" + str4 + "-" + str5);
}
public bool Is_reg()
{
string host = HttpContext.Current.Request.Url.Host;
if (host.ToUpper().Contains("LOCALHOST") || host.Contains("127.0.0.1"))
{
return true;
}
string s = ConfigurationManager.get_AppSettings()["weburl"].ToString();
return (ConfigurationManager.get_AppSettings()["key"].ToString() == this.strkey(this.Creat_Code(s)));
}
internal string MD5_Method(string strSource)
{
return FormsAuthentication.HashPasswordForStoringInConfigFile(strSource, "MD5");
}
public bool reg(Program p)
{
string str = this.Creat_Code(p.regcode);
if (p.code == str)
{
DB.SetValue("key", this.strkey(str));
return true;
}
return false;
}
internal string strkey(string str)
{
return this.MD5_Method(str.Substring(5)).Substring(10, 20);
}
public string Code
{
get
{
return this.code;
}
set
{
this.code = value;
}
}
public string Regcode
{
get
{
return this.regcode;
}
set
{
this.regcode = value;
}
}
public string Weburl
{
get
{
return this.webUrl;
}
set
{
this.webUrl = value;
}
}
}
按照这个算法的话我用192.168.0.168做域名,最终S=1921680168goodkdhfd%$$h
经过MD5加密以后就市fb68d 96173 a0c96 43754 d830f 527cc d7(空格我自己加的)
那它的注册码应该是b68d9-6173a-0c964-3754d
可是注册确是失败的,能告诉我市为什么吗? 这个应该不是这里的问题了吧 你这里的代码就是要求的注册码的
注册码就已经求出来的嘛
你在什么地方注册的呢 ??
然后你的注册码又是放到什么地方的呢!??
应该是在注册码做对比的时候
点击BUTTON按钮刷新页面而重新调用了生成生成注册码 造成了注册失败的
将注册出来的注册码放到session里面,在调用生成注册码的地方加上ispostback
这样在试试的嘛 你可以打断点测试一下看看
应该是监测得到是那点出错了的 你的代码没有问题 我得出的结果正确了·~是我的大小写忘记了~~要大写,嘿嘿,谢谢你哈!
页:
[1]
