c#编程找回密码1
发布网友
发布时间:2023-10-04 05:27
我来回答
共6个回答
热心网友
时间:2024-11-30 07:50
找回密码:
1。对于有绑定功能的用户(比如邮箱、手机等),可以生成一个验证码或者验证链接,当用户链接过来时,验证验证码或链接,如果正确,则准许修改密码
2。后台密码重置功能,核对完该用户的信息之后,把该用户的密码重置,然后告诉用户重置后的密码
如果是单向加密的,不支持还原原密码,也没必要
热心网友
时间:2024-11-30 07:50
MD5
可以加密和解密的
usingSystem.Security.Cryptography;
using
System.IO;
using
System.Text;
///MD5加密
publicstringMD5Encrypt(string
pToEncrypt, string
sKey)
{
DESCryptoServiceProvider
des = new
DESCryptoServiceProvider();
byte[]
inputByteArray =
Encoding.Default.GetBytes(pToEncrypt);
des.Key =
ASCIIEncoding.ASCII.GetBytes(sKey);
des.IV =
ASCIIEncoding.ASCII.GetBytes(sKey);
MemoryStream
ms = new
MemoryStream();
CryptoStream
cs = new
CryptoStream(ms,
des.CreateEncryptor(),CryptoStreamMode.Write);
cs.Write(inputByteArray, 0,
inputByteArray.Length);
cs.FlushFinalBlock();
StringBuilder
ret = new
StringBuilder();
foreach(byte
b in
ms.ToArray())
{
ret.AppendFormat("{0:X2}",
b);
}
ret.ToString();
return
ret.ToString();
}
///MD5解密
publicstringMD5Decrypt(string
pToDecrypt, string
sKey)
{
DESCryptoServiceProvider
des = new
DESCryptoServiceProvider();
byte[]
inputByteArray = new byte[pToDecrypt.Length / 2];
for(int
x = 0;
x <
pToDecrypt.Length / 2;
x++)
{
int
i =
(Convert.ToInt32(pToDecrypt.Substring(x * 2, 2), 16));
inputByteArray[x] =
(byte)i;
}
des.Key =
ASCIIEncoding.ASCII.GetBytes(sKey);
des.IV =
ASCIIEncoding.ASCII.GetBytes(sKey);
MemoryStream
ms = new
MemoryStream();
CryptoStream
cs = new
CryptoStream(ms,
des.CreateDecryptor(),CryptoStreamMode.Write);
cs.Write(inputByteArray, 0,
inputByteArray.Length);
cs.FlushFinalBlock();
StringBuilder
ret = new
StringBuilder();
return
System.Text.Encoding.Default.GetString(ms.ToArray());
}
参考资料:http://www.cnblogs.com/hfzsjz/archive/2010/08/23/1806552.html
热心网友
时间:2024-11-30 07:51
MD5是单向加密,不可逆的。如果说要实现密码找回功能,也只是将原来的密码重置成1个新的密码(系统和用户都知道),然后提醒用户去更改新密码。
热心网友
时间:2024-11-30 07:51
再用MD5转换赋值给一个字符变量,输出就可以看到原来的密码啦!
热心网友
时间:2024-11-30 07:52
找不回来了,除非你用穷举法一个一个地试密码。
热心网友
时间:2024-11-30 07:53
为了任务,不好意思