hmailserver帐号密码修改代码(C#)
来源:互联网 发布:服装品牌知乎 编辑:程序博客网 时间:2024/05/30 02:22
在hmailserver官方论坛搜索到hmailserver帐号密码加密方法为:先随机产生一个6位数的随机数,称为SALT,用这个SALT再加上密码(如密码abcde),得到结果SALTabcde,然后将这个结果值SALTabcde进行SHA256加密,得到一个64位密码串,再将这个密码串前面加上SALT形成70位长度的密码串再保存到数据中。官方论坛上可以搜到php做的密码修改程序,看了下挺晕头的。还是用.net的类库SHA256加密比较简单,如下是C#代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
using System.Security.Cryptography;
using System.Text;
public partial class _Default : System.Web.UI.Page
{
public string strInfo;
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnSubmit_Click(object sender, EventArgs e)
{
DBHelper db = new DBHelper();
SqlParameter[] paras1 = new SqlParameter[]
{
new SqlParameter("@Email",SqlDbType.NVarChar,100),
};
if (tbxEmail.Text.Contains("@"))
{
paras1[0].Value = tbxEmail.Text.Trim();
}
else
{
paras1[0].Value = tbxEmail.Text.Trim() + "@myemaildomainexmple.com"; //这里换成你的email信箱的域名
}
string strPassword = db.ExecuteScaler("HM_CheckAccount", paras1, CommandType.StoredProcedure);
if (strPassword != string.Empty)
{
string strSALT = strPassword.Substring(0, 6);
if (strPassword == strSALT + GetSHA256(strSALT + tbxOldPassword.Text.Trim()))
{
SqlParameter[] paras2 = new SqlParameter[]
{
new SqlParameter("@Email",SqlDbType.NVarChar,100),
new SqlParameter("@NewPassword",SqlDbType.NVarChar,70)
};
paras2[0].Value = paras1[0].Value;
paras2[1].Value = strSALT + GetSHA256(strSALT + tbxNewPassword1.Text.Trim());
bool flag = db.ExecuteNonQuery("HM_UpdatePassword", paras2, CommandType.StoredProcedure);
if (flag == true)
{
strInfo = "密码修改成功! <a href=\"http://mail.yourmaildomain.com\">登录邮箱</a>";
phdInfo.Visible = true;
phdErr.Visible = false;
phdMain.Visible = false;
return;
}
else
{
strInfo = "系统错误,修改不成功!";
phdErr.Visible = true;
return;
}
}
else
{
strInfo = "原密码不正确!";
phdErr.Visible = true;
return;
}
}
else
{
strInfo = "帐户不正确或不存在!";
phdErr.Visible = true;
return;
}
}
private string GetSHA256(string text)
{
byte[] hashValue;
byte[] message = Encoding.UTF8.GetBytes(text);
SHA256Managed hashString = new SHA256Managed();
string hex = "";
hashValue = hashString.ComputeHash(message);
foreach (byte x in hashValue)
{
hex += String.Format("{0:x2}", x);
}
return hex;
}
}
- hmailserver帐号密码修改代码(C#)
- 修改hMailServer管理密码
- Postgresql 帐号密码修改方法
- Postgresql 帐号密码修改方法
- Postgresql 帐号密码修改方法
- hmailserver 通过 webmail 修改密码
- 登录帐号密码代码
- 修改系统用户的帐号密码
- C#修改window本地帐号密码
- 修改SQLServer2005express的sa帐号密码
- 修改SQLServer2008express的sa帐号密码
- 远程修改Server-U的用户帐号密码
- Linux 系统通过WEB修改svn 帐号密码
- postgresql windows下修改帐号密码 (图文)
- 忆龙2009:iNode客户端如何在线修改帐号密码
- 忘记MySQL数据库root帐号密码,怎么修改过来?
- hMailServer设置
- hmailserver配置
- NPAPI——实现非IE浏览器的类似ActiveX的本地程序(插件)调用
- STL经典算法集锦<一>之list::sort
- Android:BT测试代码
- [Linux]链接,静态库和动态库
- DIV在FireFox下出现重叠
- hmailserver帐号密码修改代码(C#)
- 使用Forms Authentication实现用户注册、登录
- 关于EJB3的一个简单例子
- Job Setup: Failed
- 一组排序矩阵相关操作,数据结构使用的是多维链表
- C#[Serializable]在C#中的作用-NET 中的对象序列化
- 教你写一个C的assert宏
- freescale ltib 使用说明2
- 10进制转8进制