一个论坛的数据库里用户的密码是用MD5加密存放的,我想重置所有用户密码为1234,各位看看我的SQL语句:update s_users set `password` = '".md5("1234")."';
可是执行完后,pw是改了,可都变为 ".md5("1234")." 这个样子,而不是用MD5加密的密码形式。
不知道我有没有讲清楚,我在线等了,各位走过路过的大大们帮帮忙!

解决方案 »

  1.   

    mysql里面好像没有你说的那个md5的function吧?md5是用程序生产的,你参考一下:<%@ Import Namespace="System.Security.Cryptography" %> 
    <%@ Import Namespace="System.Text" %> 
    <%@ Import Namespace="System.Data" %> 
    <%@ Import Namespace="System.Data.SqlClient" %> 
    <Script runat="server" language="VB"> 
    Sub CreateAccount(sender as Object, e as EventArgs) 
    "1. 建立数据库连接 
    Const strConnString as String = "connection string" 
    Dim objConn as New SqlConnection(strConnString) 
    "2. 建立Command对象 
    Dim strSQL as String = _ 
    "INSERT INTO UserAccount(Username,Password) " & _ 
    "VALUES(@Username, @Password)" 
    Dim objCmd as New SqlCommand(strSQL, objConn) 
    "3. SQL参数 
    Dim paramUsername as SqlParameter 
    paramUsername= New SqlParameter("@Username", SqlDbType.VarChar, 25) 
    paramUsername.Value = txtUsername.Text 
    objCmd.Parameters.Add(paramUsername) 
    "加密用户密码 
    Dim md5Hasher as New MD5CryptoServiceProvider() 
    Dim hashedBytes as Byte() 
    Dim encoder as New UTF8Encoding() 
    hashedBytes=md5Hasher.ComputeHash(encoder.GetBytes(txtPwd.Text)) 
    Dim paramPwd as SqlParameter 
    paramPwd = New SqlParameter("@Password", SqlDbType.Binary, 16) 
    paramPwd.Value = hashedBytes 
    objCmd.Parameters.Add(paramPwd) 
    "加入数据库 
    objConn.Open() 
    objCmd.ExecuteNonQuery() 
    objConn.Close() 
    End Sub 
    </script> 
    <Form runat="server"> 
    <h1>建立一个账号</h1> 
    用户名:<asp:TextBox runat="server" id="txtUsername" /> 
    <br />密码: 
    <asp:TextBox runat="server" id="txtPwd" TextMode="Password" /> 
    <p><asp:Button runat="server" Text="建立用户账号" onClick="CreateAccount" /></p> 
    </form>
      

  2.   

    哈哈,明白了,谢谢这位大哥了,虽然你给的是ASP中的处理方法。。
    结贴放分!!
      

  3.   

    mysql有MD5函数
    不知你的SQL语句:update s_users set `password` = '".md5("1234")."'为什么要加那么多的引号??