比如用户密码为:123456 而写到数据库中的为102015605XFFS 等这种加密状态,而在程序有又可以把它解释成原来的:123456
解决方案 »
- c# sql 上位机 的问题
- C# winform浏览图片的问题,懂得请进!
- 游戏外挂加血怎么做?
- 用C#如何在winform程序中创建折叠式导航菜单????
- 产生一个 80%的概率 大家看我这样做 有什么问题?
- WinForm下DataGrid排序时提示升序或降序的图标问题
- ×××××××(300分问题)自定义WEB控件,如何才能真正解决“在非窗体控件中保持客户端更改”问题?×××××××
- 100分求助C#中MDI程序怎么获得当前激活的子窗体 在线等
- 怎么写数据邦定的PATH
- 做个登录窗口(winform)
- datagridview更新和删除问题
- 更新文档后,点击文档自带保存按钮,自动更新数据库内容!(急需中......)
DECLARE @ClearPWD varchar(255)
DECLARE @EncryptedPWD varbinary(255)
SELECT @ClearPWD = 'test'
SELECT @EncryptedPWD = CONVERT(varbinary(255), pwdencrypt(@ClearPWD))
SELECT @EncryptedPWD
用微软提供的SHA1单向不可逆加密方法,
public string ToEncryptPassword(string strPassword)
{
return System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(strPassword, "SHA1");
}把加密后的字符串写入数据表,然后在每次登陆时把输入的密码再通过ToEncryptPassword加密一次,与数据表中的对比。相同即可!
= System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile("要加密的字符串", "MD5").ToLower()
DECLARE @EncryptedPWD varbinary(255) --加密后的密码
SELECT @ClearPWD = 'zzm' --给密码赋值
SELECT @EncryptedPWD = CONVERT(varbinary(255), pwdencrypt(@ClearPWD)) --给密码加密
SELECT @EncryptedPWD --这时的密码就已经被加密了--比较SELECT pwdcompare('zzm', @EncryptedPWD, 0) --@ClearPWD为传入的密码字符串,@EncryptedPWD为加密后的密码,0为掩码状态(一般填0就好),如果列出的结果为1表示密码正确,为0表示密码错误
可以在程序里面执行这些sql语句进行加密和比较。上面的加密部分就写到注册,下面的比较部分就写到登陆里面