当前位置:编程学习 > C#/ASP.NET >>

在ASPX+MSSQL里看到这个加密,琢磨了几天还是不知道算法

这俩
24位,BASE64的,但是我解出来是乱码
蛋都要碎了
S95DA8JK9M+5Fp0+HYpXBw==
sWm7vu4iJUdazAsD5PRaLw==
这个是login.aspx的代码
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="login.aspx.cs" Inherits="System.Manage.login" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>管理中心登陆 </TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<LINK href="css/admin.css" type="text/css" rel="stylesheet">
</HEAD>
<BODY onload=document.form1.name.focus();>
<TABLE height="100%" cellSpacing=0 cellPadding=0 width="100%" bgColor=#002779 
border=0>
  <TR>
    <TD align=middle>
      <TABLE cellSpacing=0 cellPadding=0 width=468 border=0>
        <TR>
          <TD><IMG height=23 src="images/login_1.jpg" 
          width=468></TD></TR>
        <TR>
          <TD><IMG height=147 src="images/login_2.jpg" 
            width=468></TD></TR></TABLE>
      <TABLE cellSpacing=0 cellPadding=0 width=468 bgColor=#ffffff border=0>
        <TR>
          <TD width=16><IMG height=122 src="images/login_3.jpg" 
            width=16></TD>
          <TD align=middle>
            <TABLE cellSpacing=0 cellPadding=0 width=230 border=0>
                <form id="form1" runat="server">
              <TR height=5>
                <TD width=5></TD>
                <TD width=56></TD>
                <TD></TD></TR>
              <TR height=36>
                <TD></TD>
                <TD>用户名</TD>
                <TD><INPUT  runat="server"  style="BORDER-RIGHT: #000000 1px solid; BORDER-TOP: #000000 1px solid; BORDER-LEFT: #000000 1px solid; BORDER-BOTTOM: #000000 1px solid" 
                  maxLength=30 size=24  id=name></TD></TR>
              <TR height=36>
                <TD>  </TD>
                <TD>口 令</TD>
                <TD><INPUT  runat="server" id="password"
                  style="BORDER-RIGHT: #000000 1px solid; BORDER-TOP: #000000 1px solid; BORDER-LEFT: #000000 1px solid; BORDER-BOTTOM: #000000 1px solid" 
                  type=password maxLength=30 size=24 
                name=pass></TD></TR>
              <TR height=5>
                <TD colSpan=3></TD></TR>
              <TR>
                <TD> </TD>
                <TD> </TD>
                <TD>
                    <asp:Button ID="loginw"   height=18 width=70  runat="server" Text="登陆" 
                        onclick="loginw_Click"  />
                  
                  </TD></TR>
                </form>
              </TABLE></TD>
          <TD width=16><IMG height=122 src="images/login_4.jpg" 
            width=16></TD></TR></TABLE>
      <TABLE cellSpacing=0 cellPadding=0 width=468 border=0>
        <TR>
          <TD><IMG height=16 src="images/login_5.jpg" 
          width=468></TD></TR></TABLE>
      <TABLE cellSpacing=0 cellPadding=0 width=468 border=0>
        <TR>
          <TD align=right><A href="http://www.865171.cn/" target=_blank><IMG 
            height=26 src="images/login_6.gif" width=165 
            border=0></A></TD></TR></TABLE></TD></TR></TABLE></BODY></HTML>





login.aspx.cs
锘縰sing System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using BLL;

namespace System.Manage
{
    public partial class login : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void loginw_Click(object sender, EventArgs e)
        {
            //鐧诲綍
            stringBLL sb = new stringBLL();
            string[] userlogin = userBLL.UserLogins(name.Value.Trim(), password.Value.Trim());
            if (userlogin[0] == null)
            {
                sb.ShowError("鐢ㄦ埛鍚嶆垨瀵嗙爜閿欒 ");

            }
            else
            {
                Response.Cookies["userid"].Value = userlogin[0];
                Response.Cookies["username"].Value = userlogin[1];
                Response.Redirect("index.aspx");
            }
        }
    }
}





login.aspx.designer.cs
锘?/------------------------------------------------------------------------------
// <auto-generated>
//     姝や唬鐮佺敱宸ュ叿鐢熸垚銆?
//     杩愯 鏃剁増鏈?2.0.50727.5446
//
//     瀵规 鏂囦欢鐨勬洿鏀瑰彲鑳戒細瀵艰嚧涓嶆 纭 殑琛屼负锛屽苟涓斿 鏋?
//     閲嶆柊鐢熸垚浠g爜锛岃繖浜涙洿鏀瑰皢浼氫涪澶便??
// </auto-generated>
//------------------------------------------------------------------------------

namespace System.Manage {
    
    
    public partial class login {
        
        /// <summary>
        /// form1 鎺т欢銆?
        /// </summary>
        /// <remarks>
        /// 鑷 姩鐢熸垚鐨勫瓧娈点??
        /// 鑻ヨ 杩涜 淇 敼锛岃 灏嗗瓧娈靛0鏄庝粠璁捐 鍣ㄦ枃浠剁Щ鍒颁唬鐮侀殣钘忔枃浠躲??
        /// </remarks>
        protected global::System.Web.UI.HtmlControls.HtmlForm form1;
        
        /// <summary>
        /// name 鎺т欢銆?
        /// </summary>
        /// <remarks>
        /// 鑷 姩鐢熸垚鐨勫瓧娈点??
        /// 鑻ヨ 杩涜 淇 敼锛岃 灏嗗瓧娈靛0鏄庝粠璁捐 鍣ㄦ枃浠剁Щ鍒颁唬鐮侀殣钘忔枃浠躲??
        /// </remarks>
        protected global::System.Web.UI.HtmlControls.HtmlInputText name;
        
        /// <summary>
        /// password 鎺т欢銆?
        /// </summary>
        /// <remarks>
        /// 鑷 姩鐢熸垚鐨勫瓧娈点??
        /// 鑻ヨ 杩涜 淇 敼锛岃 灏嗗瓧娈靛0鏄庝粠璁捐 鍣ㄦ枃浠剁Щ鍒颁唬鐮侀殣钘忔枃浠躲??
        /// </remarks>
        protected global::System.Web.UI.HtmlControls.HtmlInputPassword password;
        
        /// <summary>
        /// loginw 鎺т欢銆?
        /// </summary>
        /// <remarks>
        /// 鑷 姩鐢熸垚鐨勫瓧娈点??
        /// 鑻ヨ 杩涜 淇 敼锛岃 灏嗗瓧娈靛0鏄庝粠璁捐 鍣ㄦ枃浠剁Щ鍒颁唬鐮侀殣钘忔枃浠躲??
        /// </remarks>
        protected global::System.Web.UI.WebControls.Button loginw;
    }
}


乱码是一些无关紧要的说明

哪位告诉我一下加密方式或者帮我解一下算法,我蛋都要碎了。。 --------------------编程问答-------------------- 这可能是编码问题吧,把gb2312换成utf-8 --------------------编程问答--------------------
S95DA8JK9M+5Fp0+HYpXBw==
sWm7vu4iJUdazAsD5PRaLw==
这2个是密码,UTF8也不行 --------------------编程问答-------------------- 4BDE4303C24AF4CFB9169D3E1D8A5707   --对应你的 S95DA8JK9M+5Fp0+HYpXBw==
B169BBBEEE2225475ACC0B03E4F45A2F    --对应你的  sWm7vu4iJUdazAsD5PRaLw==
在线MD5 没有破解出来,估计不是常用明文加密。

我看代码 
 string[] userlogin = userBLL.UserLogins(name.Value.Trim(), password.Value.Trim());
这里就是加密吧,如果有数据库,跟踪一下,看看数据库里面是不是存有32位长MD5码?
你可以看看数据里面是不是这种规律?

如果有,替换成123的密文试试吧。
202cb962ac59075b964b07152d234b70  --我测试的123 字符符串


--------------------编程问答--------------------
引用 3 楼  的回复:
4BDE4303C24AF4CFB9169D3E1D8A5707   --对应你的 S95DA8JK9M+5Fp0+HYpXBw==
B169BBBEEE2225475ACC0B03E4F45A2F    --对应你的  sWm7vu4iJUdazAsD5PRaLw==
在线MD5 没有破解出来,估计不是常用明文加密。

我看代码 
 string[] userlogin = user……

那么,您的这个MD5怎么转换成24位的啊,我用BASE64弄出来老长了。
说起来,这个数据库也很奇怪,新添加的数据在表里10分钟之后就查不到了,里面只显示一条很老的 --------------------编程问答--------------------
引用 3 楼  的回复:
4BDE4303C24AF4CFB9169D3E1D8A5707   --对应你的 S95DA8JK9M+5Fp0+HYpXBw==
B169BBBEEE2225475ACC0B03E4F45A2F    --对应你的  sWm7vu4iJUdazAsD5PRaLw==
在线MD5 没有破解出来,估计不是常用明文加密。

我看代码 
 string[] userlogin = user……


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using DAL;

namespace BLL
{
    public class userBLL
    {
        /// <summary>
        ///  添加
        /// </summary>
        public static SqlHelper sh = new SqlHelper();
        public static stringBLL sb = new stringBLL();
        public static int AddUser(string username, string password, DateTime pubtime)
        {
            string value = string.Format("'{0}','{1}','{2}'", username, sb.MD5(password), pubtime);
            SqlParameter[] spar = SetSqlParsDAL.SetInsertPars("t_User", "Username,Password,Writetime", value);

            return sh.GetQuery("Pr_Insert", spar);
        }
        /// <summary>
        ///  删除
        /// </summary>
        public static int DeleteUser(int id)
        {
            string sql = "Pr_Delete";
            SqlParameter[] par = SetSqlParsDAL.SetDeletePars("t_User", "id=" + id);
            return sh.GetQuery(sql, par);
        }
        /// <summary>
        /// 修改密码
        /// </summary> 
        public static int UpdatePassword(int id, string password)
        {
            string value = string.Format("Password='{0}'", sb.MD5(password));

            SqlParameter[] spar = SetSqlParsDAL.SetUpdatePars("t_User", value, "id=" + id);
            return sh.GetQuery("Pr_Update", spar);
        }
        /// <summary>
        ///  查询
        /// </summary>
        public static DataTable GetUser(string where, string order)
        {
            DataSet ds = null;
            SqlParameter[] par = SetSqlParsDAL.SetGetDataPars("t_User", "*", where, order);
            ds= sh.GetDataSet("Pr_GetData", par);
            return ds.Tables[0];
        }

        /// <summary>
        /// 用户登录
        /// </summary>
        /// <param name="username"></param>
        /// <param name="password"></param>
        /// <returns></returns>
        public static string[] UserLogins(string username, string password)
        {
            string[] user = new string[2];
            //对密码进行加密处理
            password = sb.MD5(password);
            username = sb.SqlEncode(username, 0);
            try
            {
                SqlParameter[] par = { 
                                      new SqlParameter("@Table", "t_User"),
                                      new SqlParameter("@Fields","*"),
                                      new SqlParameter("@Where",string.Format(" where Username = '{0}' and Password = '{1}'",username,password)),
                                      new SqlParameter("@Order","")
                                  };
                DataTable dt = sh.GetDataSet("Pr_GetData", par, CommandType.StoredProcedure).Tables[0];
                if (dt.Rows.Count > 0)
                {
                    user[0] = dt.Rows[0]["id"].ToString();
                    user[1] = dt.Rows[0]["username"].ToString();

                }
            }
            catch
            { }
            return user;
        }
     
       
    }
}


这个是USERBLL.cs
加密方式是MD5 --------------------编程问答-------------------- /// <summary>
        /// 对密码进行MD5加密
        /// </summary>
        /// <param name="Str">明文</param>
        /// <returns>添加密码后缀字符串后的密文</returns>
        public string MD5(string Str)
        {
            return MD5(Str, false);
        }
        /// <param name="Old">是否判断旧密码,旧密码判断不加入密码后缀字符串</param>
        public string MD5(string Str,bool Old)
        {
            System.Security.Cryptography.MD5 md5 = System.Security.Cryptography.MD5.Create();
            byte[] bytes = new byte[16];
            System.Text.ASCIIEncoding asc = new System.Text.ASCIIEncoding();
            if (Old == true)
            {
                bytes = md5.ComputeHash(asc.GetBytes(Str));
            }
            else
            {
                bytes = md5.ComputeHash(asc.GetBytes(Str + PassExt));
            }
            return Convert.ToBase64String(bytes);
        }

        /// <summary>
        /// 使用SHA1算法求加密
        /// </summary>
        /// <param name="text">明文</param>
        /// <returns>添加密码后缀字符串后的密文</returns>
        public string SHA1(string Str)
        {
            return System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(Str + PassExt, "SHA1");
        }


终于找到加密方式了,果然很蛋疼……
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,