哪位大神帮忙看看这是用什么方法加密的

wangzijia06 2015-09-29 11:32:39
拿了一个cms源码,c#+mssql数据库,数据库中的密码是On8U4+dy1Rs=,有没有人知道个怎么破
...全文
448 30 打赏 收藏 转发到动态 举报
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
fengxichou 2016-01-15
  • 打赏
  • 举报
回复

#region MD5加密解密
/// <summary>
/// MD5加密
/// </summary>
/// <param name="password">需要加密的字符串</param>
/// <returns>MD5加密后的字符串</returns>
public static string Md5Encrypt(string password)
{
//把字符串放到byte数组中
byte[] bytIn = Encoding.Default.GetBytes(password);
//建立加密对象的密钥和偏移量
byte[] iv = { 102, 16, 93, 156, 78, 4, 218, 32 };//定义偏移量
byte[] key = { 55, 103, 246, 79, 36, 99, 167, 3 };//定义密钥
//实例DES加密类
DESCryptoServiceProvider mobjCryptoService = new DESCryptoServiceProvider() { Key = iv, IV = key };
ICryptoTransform encrypto = mobjCryptoService.CreateEncryptor();
//实例MemoryStream流加密密文件
MemoryStream ms = new MemoryStream();
CryptoStream cs = new CryptoStream(ms, encrypto, CryptoStreamMode.Write);
cs.Write(bytIn, 0, bytIn.Length);
cs.FlushFinalBlock();
return Convert.ToBase64String(ms.ToArray());
}
/// <summary>
/// MD5解密
/// </summary>
/// <param name="password">需要解密的字符串</param>
/// <returns>MD5解密后的字符串</returns>
public static string Md5Decrypt(string password)
{
//将解密字符串转换成字节数组
byte[] bytIn = Convert.FromBase64String(password);
//给出解密的密钥和偏移量,密钥和偏移量必须与加密时的密钥和偏移量相同
byte[] iv = { 102, 16, 93, 156, 78, 4, 218, 32 };//定义偏移量
byte[] key = { 55, 103, 246, 79, 36, 99, 167, 3 };//定义密钥
DESCryptoServiceProvider mobjCryptoService = new DESCryptoServiceProvider() { Key = iv, IV = key };
//实例流进行解密
MemoryStream ms = new MemoryStream(bytIn, 0, bytIn.Length);
ICryptoTransform encrypto = mobjCryptoService.CreateDecryptor();
CryptoStream cs = new CryptoStream(ms, encrypto, CryptoStreamMode.Read);
StreamReader strd = new StreamReader(cs, Encoding.Default);
return strd.ReadToEnd();
}
#endregion


.....我估计这个是你要的
小灰狼 2015-10-08
  • 打赏
  • 举报
回复
找到用户表 注册一个用户,新用户的密码你自己知道的,比如是000000 到用户表里找到这条新用户的记录,把它的密码字段复制到admin用户的密码字段 再用admin用户,以000000为密码登录
ylw2000 2015-10-05
  • 打赏
  • 举报
回复
问专家我啊,中国解密网
datahandler2 2015-10-02
  • 打赏
  • 举报
回复
你都有源代码了,又有数据库加密后的密文。。。。然后还来这边发帖询问怎么破解?这是要被打的节奏? 你不会看看对应模块的加密代码呀???
qq_31721653 2015-10-02
  • 打赏
  • 举报
回复
我也来学看。不错哦。
wangzijia06 2015-10-02
  • 打赏
  • 举报
回复
引用 22 楼 ajianchina 的回复:
将 this.spanError.InnerText = "用户名或密码不正确!"; 换成 this.spanError.InnerText = strMDPassword; 进行登录,提示的信息就是你随意输入的密码的加密字符,你将提示的这个字符替换到数据库中,进行登录就行了,搞好之后再将上面的这段代码给恢复过来。 配了你两天了,你可以加点分呢,
用你的方法成功了,密码果然是123456,我把另一张表的用户名搞错了
wangzijia06 2015-10-01
  • 打赏
  • 举报
回复
引用 22 楼 ajianchina 的回复:
将 this.spanError.InnerText = "用户名或密码不正确!"; 换成 this.spanError.InnerText = strMDPassword; 进行登录,提示的信息就是你随意输入的密码的加密字符,你将提示的这个字符替换到数据库中,进行登录就行了,搞好之后再将上面的这段代码给恢复过来。 配了你两天了,你可以加点分呢,
我等会试一下,因为我对.net一点都不熟悉,弄好了分都给你了啦
ajianchina 2015-10-01
  • 打赏
  • 举报
回复
将 this.spanError.InnerText = "用户名或密码不正确!"; 换成 this.spanError.InnerText = strMDPassword; 进行登录,提示的信息就是你随意输入的密码的加密字符,你将提示的这个字符替换到数据库中,进行登录就行了,搞好之后再将上面的这段代码给恢复过来。 配了你两天了,你可以加点分呢,
wangzijia06 2015-10-01
  • 打赏
  • 举报
回复
引用 19 楼 ajianchina 的回复:
你10楼的代码是怎么翻出来的?密码对比的那一段应该是有的,你仔细找找看 同时,全文通过完全匹配的方式检索一下数据库密码字段的字符,找到的话,看赋给什么变量,按这个线索找找。
救救急,给你我所有的分
wangzijia06 2015-10-01
  • 打赏
  • 举报
回复
引用 19 楼 ajianchina 的回复:
你10楼的代码是怎么翻出来的?密码对比的那一段应该是有的,你仔细找找看 同时,全文通过完全匹配的方式检索一下数据库密码字段的字符,找到的话,看赋给什么变量,按这个线索找找。
protected void txtLogin_Click(object sender, EventArgs e)
    {
        string strUserName = this.txtLoginName.Text.Trim();
        string strPassword = this.txtPassward.Text.Trim();
        if (string.IsNullOrEmpty(strUserName) || string.IsNullOrEmpty(strPassword))
        {
            this.spanError.InnerText = "用户名或密码不能为空!";
            return;
        }
        string strMDPassword = SecurityHelper.SetMD5(strPassword);

        Employee entity = new Employee(string.Format(" IDPlus ={0} and LoginPassword='{1}' and DelStatus=0", strUserName, strMDPassword), false);
        if (!entity.HaveData)
        {
            this.spanError.InnerText = "用户名或密码不正确!";
            return;
        }
        HttpCookie userCookie = this.Request.Cookies["WNNUserInfo"];
        if (userCookie != null)
        {
            this.Response.Cookies.Remove("WNNUserInfo");
        }
        userCookie = new HttpCookie("WNNUserInfo");
        userCookie.Values["UserName"] = strUserName;
        userCookie.Values["Password"] = strMDPassword;
        userCookie.Values["UserIDPlus"] = entity.Idplus.ToString();
        userCookie.Expires = DateTime.Now.AddDays(1);
        this.Response.AppendCookie(userCookie);
login.aspx里只有这些有用的了,其他都是登录日志了
ajianchina 2015-10-01
  • 打赏
  • 举报
回复
你10楼的代码是怎么翻出来的?密码对比的那一段应该是有的,你仔细找找看 同时,全文通过完全匹配的方式检索一下数据库密码字段的字符,找到的话,看赋给什么变量,按这个线索找找。
wangzijia06 2015-09-30
  • 打赏
  • 举报
回复
引用 16 楼 ajianchina 的回复:
不不不 一般套路是这样的: 1、你填入登录口令按登录 2、代码将你的登录密码按他的方法进行加密 3、将上面第二步被加密后得出的字符串跟数据库中对应用户名下的留存的密码字符串进行对比 4、对比找到记录,放行。 跟让你show出的是第二步的字符串,你只需要按他的加密方法执行一下,而无需去研究他是怎么加密的,将这个字符串拿到后替换掉数据库中的原来的密码,再次按你的密码进行登录。
我懂你的意思,但是这个代码的很多类都生成dll了,应该是没办法操作
wangzijia06 2015-09-30
  • 打赏
  • 举报
回复
引用 16 楼 ajianchina 的回复:
不不不 一般套路是这样的: 1、你填入登录口令按登录 2、代码将你的登录密码按他的方法进行加密 3、将上面第二步被加密后得出的字符串跟数据库中对应用户名下的留存的密码字符串进行对比 4、对比找到记录,放行。 跟让你show出的是第二步的字符串,你只需要按他的加密方法执行一下,而无需去研究他是怎么加密的,将这个字符串拿到后替换掉数据库中的原来的密码,再次按你的密码进行登录。
能留个qq指导下不,我看了他们的数据库,里面很多管理员密码都是这个默认的,但我用admin和123456常见的试了都不行,你能给个思路不
ajianchina 2015-09-30
  • 打赏
  • 举报
回复
不不不 一般套路是这样的: 1、你填入登录口令按登录 2、代码将你的登录密码按他的方法进行加密 3、将上面第二步被加密后得出的字符串跟数据库中对应用户名下的留存的密码字符串进行对比 4、对比找到记录,放行。 跟让你show出的是第二步的字符串,你只需要按他的加密方法执行一下,而无需去研究他是怎么加密的,将这个字符串拿到后替换掉数据库中的原来的密码,再次按你的密码进行登录。
wangzijia06 2015-09-30
  • 打赏
  • 举报
回复
引用 13 楼 ajianchina 的回复:
[quote=引用 12 楼 wangzijia06 的回复:] [quote=引用 11 楼 ajianchina 的回复:] 这段没鸟用,这是从本地Cookie向登录文本框恢复登录口令的一段代码 只问你两个问题,既然你看到了数据库密码,你能手动临时修一下吗?哪怕就一会 能的话,你加分吧。呵呵,不过,你如果是干坏事,那还是就此打住吧。
没有坏事,我在我本地测试的,据我了解好像直接在数据库里改了不顶用哦[/quote] 我不是这个意思,我在想你可能是拿到了一套源码,先不论你这源码的来源,现在安装后发现因取不到密码无法登陆,解决这个问题不是太难的,你在源码中找到登陆时与数据库密码进行匹配的那一段代码,找到后,只需在上面加上一段Response.Write(被加密字符),就可以了,然后你随便在登陆窗口输入一个密码,通过show出来的被加密字符,将其替换到数据库密码字段中,接下来就按刚才填的密码再登录就行了。[/quote]但是也不对啊,show出来的加密字符还是写到数据库里的On8U4+dy1Rs=这个
wangzijia06 2015-09-30
  • 打赏
  • 举报
回复
引用 13 楼 ajianchina 的回复:
[quote=引用 12 楼 wangzijia06 的回复:] [quote=引用 11 楼 ajianchina 的回复:] 这段没鸟用,这是从本地Cookie向登录文本框恢复登录口令的一段代码 只问你两个问题,既然你看到了数据库密码,你能手动临时修一下吗?哪怕就一会 能的话,你加分吧。呵呵,不过,你如果是干坏事,那还是就此打住吧。
没有坏事,我在我本地测试的,据我了解好像直接在数据库里改了不顶用哦[/quote] 我不是这个意思,我在想你可能是拿到了一套源码,先不论你这源码的来源,现在安装后发现因取不到密码无法登陆,解决这个问题不是太难的,你在源码中找到登陆时与数据库密码进行匹配的那一段代码,找到后,只需在上面加上一段Response.Write(被加密字符),就可以了,然后你随便在登陆窗口输入一个密码,通过show出来的被加密字符,将其替换到数据库密码字段中,接下来就按刚才填的密码再登录就行了。[/quote]这个方法不错,我试试,多谢啦
ajianchina 2015-09-30
  • 打赏
  • 举报
回复
引用 12 楼 wangzijia06 的回复:
[quote=引用 11 楼 ajianchina 的回复:] 这段没鸟用,这是从本地Cookie向登录文本框恢复登录口令的一段代码 只问你两个问题,既然你看到了数据库密码,你能手动临时修一下吗?哪怕就一会 能的话,你加分吧。呵呵,不过,你如果是干坏事,那还是就此打住吧。
没有坏事,我在我本地测试的,据我了解好像直接在数据库里改了不顶用哦[/quote] 我不是这个意思,我在想你可能是拿到了一套源码,先不论你这源码的来源,现在安装后发现因取不到密码无法登陆,解决这个问题不是太难的,你在源码中找到登陆时与数据库密码进行匹配的那一段代码,找到后,只需在上面加上一段Response.Write(被加密字符),就可以了,然后你随便在登陆窗口输入一个密码,通过show出来的被加密字符,将其替换到数据库密码字段中,接下来就按刚才填的密码再登录就行了。
wangzijia06 2015-09-30
  • 打赏
  • 举报
回复
引用 11 楼 ajianchina 的回复:
这段没鸟用,这是从本地Cookie向登录文本框恢复登录口令的一段代码 只问你两个问题,既然你看到了数据库密码,你能手动临时修一下吗?哪怕就一会 能的话,你加分吧。呵呵,不过,你如果是干坏事,那还是就此打住吧。
没有坏事,我在我本地测试的,据我了解好像直接在数据库里改了不顶用哦
ajianchina 2015-09-30
  • 打赏
  • 举报
回复
这段没鸟用,这是从本地Cookie向登录文本框恢复登录口令的一段代码 只问你两个问题,既然你看到了数据库密码,你能手动临时修一下吗?哪怕就一会 能的话,你加分吧。呵呵,不过,你如果是干坏事,那还是就此打住吧。
wangzijia06 2015-09-30
  • 打赏
  • 举报
回复
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            HttpCookie userCookie = this.Request.Cookies["WNNUserInfo"];
            if (userCookie != null)
            {
                this.txtLoginName.Text = userCookie["UserName"] == null ? "" : userCookie["UserName"].ToString();
                if (userCookie["Password"] != null)
                {
                    this.txtPassward.Text = SecurityHelper.DEMD5(userCookie["Password"].ToString());
                }
            }
        }
    }
我看了代码是这个,有没有人能解出来
加载更多回复(9)

62,041

社区成员

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

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

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

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