| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 796 人关注过本帖
标题:这个注册加密算法怎么算啊?刚接触编程不看不懂
只看楼主 加入收藏
smkke
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2008-6-26
收藏
 问题点数:0 回复次数:7 
这个注册加密算法怎么算啊?刚接触编程不看不懂
源码
 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);
    }
搜索更多相关主题的帖子: 算法 注册 
2008-06-26 14:33
tomtory
Rank: 1
来 自:重庆
等 级:新手上路
帖 子:705
专家分:0
注 册:2008-6-12
收藏
得分:0 
string str5 = str.Substring(0x10, 5);  这句吗?


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

就这样了
2008-06-26 15:11
tomtory
Rank: 1
来 自:重庆
等 级:新手上路
帖 子:705
专家分:0
注 册:2008-6-12
收藏
得分:0 
还有一种就是在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次方
2008-06-26 15:24
smkke
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2008-6-26
收藏
得分:0 
明白了~~~谢谢~~~很详细
2008-06-26 16:27
smkke
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2008-6-26
收藏
得分: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
可是注册确是失败的,能告诉我市为什么吗?
2008-06-26 16:38
tomtory
Rank: 1
来 自:重庆
等 级:新手上路
帖 子:705
专家分:0
注 册:2008-6-12
收藏
得分:0 
这个应该不是这里的问题了吧  你这里的代码就是要求的注册码的  
注册码就已经求出来的嘛

你在什么地方注册的呢 ??

然后你的注册码又是放到什么地方的呢!??

应该是在注册码做对比的时候
点击BUTTON按钮刷新页面而重新调用了生成生成注册码  造成了注册失败的

将注册出来的注册码放到session里面,在调用生成注册码的地方加上ispostback

这样在试试的嘛
2008-06-26 17:12
tomtory
Rank: 1
来 自:重庆
等 级:新手上路
帖 子:705
专家分:0
注 册:2008-6-12
收藏
得分:0 
你可以打断点测试一下看看
应该是监测得到是那点出错了的  你的代码没有问题
2008-06-26 17:13
smkke
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2008-6-26
收藏
得分:0 
我得出的结果正确了·~是我的大小写忘记了~~要大写,嘿嘿,谢谢你哈!
2008-06-27 08:54
快速回复:这个注册加密算法怎么算啊?刚接触编程不看不懂
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025238 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved