# 注册账号后邮箱激活的思路

3574人阅读 评论(0)

public static string GetStrUserRegist()
{
//自己做个格式，比如1对应”XXX1“
DateTime d1 = DateTime.Now;

List<string> s = new List<string>() { "XJ", "AE", "Ye", "iJ", "Hj", "Ey", "Ys", "Es", "Ts", "eU" };
string str = d1.ToString("yyyy-MM-dd HH:mm:ss")+d1.Millisecond;//放个时间进去，然后加载的时候再解密
string NewStr = "";
//5592012-3-29 17:58:1115
for (int i = 0; i < str.Length; i++)
{
if (str[i].ToString() == "0")
{
NewStr += s[0];
}
else if (str[i].ToString() == "1")
{
NewStr += s[1];
}
else if (str[i].ToString() == "2")
{
NewStr += s[2];
}
else if (str[i].ToString() == "3")
{
NewStr += s[3];
}
else if (str[i].ToString() == "4")
{
NewStr += s[4];
}
else if (str[i].ToString() == "5")
{
NewStr += s[5];
}
else if (str[i].ToString() == "6")
{
NewStr += s[6];
}
else if (str[i].ToString() == "7")
{
NewStr += s[7];
}
else if (str[i].ToString() == "8")
{
NewStr += s[8];
}
else if (str[i].ToString() == "9")
{
NewStr += s[9];
}
else if (str[i].ToString() == " ")//当是空的时候
{
NewStr += "Qin";
}
else if (str[i].ToString() == ":")
{
NewStr += "J";
}
else
{
NewStr += "O";
}
}
return NewStr;
}

public  class MyService
{
// 对称加密算法提供器
private ICryptoTransform encryptor;     // 加密器对象
private ICryptoTransform decryptor;     // 解密器对象
private const int BufferSize = 1024;
public MyService(string algorithmName, string key)
{
SymmetricAlgorithm provider = SymmetricAlgorithm.Create(algorithmName);
provider.Key = Encoding.UTF8.GetBytes(key);
provider.IV = new byte[] { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF };
encryptor = provider.CreateEncryptor();
decryptor = provider.CreateDecryptor();
}
public MyService(string key) : this("TripleDES", key) { }
// 加密算法
private string Encrypt(string clearText)
{
// 创建明文流
byte[] clearBuffer = Encoding.UTF8.GetBytes(clearText);
MemoryStream clearStream = new MemoryStream(clearBuffer);
// 创建空的密文流
MemoryStream encryptedStream = new MemoryStream();
CryptoStream cryptoStream =
new CryptoStream(encryptedStream, encryptor, CryptoStreamMode.Write);
// 将明文流写入到buffer中
// 将buffer中的数据写入到cryptoStream中
byte[] buffer = new byte[BufferSize];
do
{
cryptoStream.FlushFinalBlock();
// 获取加密后的文本
buffer = encryptedStream.ToArray();
string encryptedText = Convert.ToBase64String(buffer);
return encryptedText;
}
// 解密算法
private string Decrypt(string encryptedText)
{
byte[] encryptedBuffer = Convert.FromBase64String(encryptedText);
Stream encryptedStream = new MemoryStream(encryptedBuffer);
MemoryStream clearStream = new MemoryStream();
CryptoStream cryptoStream =
byte[] buffer = new byte[BufferSize];
do
{
buffer = clearStream.GetBuffer();
string clearText =
Encoding.UTF8.GetString(buffer, 0, (int)clearStream.Length);
return clearText;
}
/// <summary>
///加密
/// </summary>
/// <param name="clearText"></param>
/// <param name="key"></param>
/// <returns></returns>
public static string Encrypt(string clearText, string key)
{
MyService helper = new MyService(key);
return helper.Encrypt(clearText);
}
/// <summary>
/// 解密
/// </summary>
/// <param name="encryptedText"></param>
/// <param name="key"></param>
/// <returns></returns>
public static string Decrypt(string encryptedText, string key)
{
MyService helper = new MyService(key);
return helper.Decrypt(encryptedText);
}
}

/// <summary>
/// 发送邮件（注册）
/// </summary>
/// <param name="name">用户姓名</param>
/// <param name="userPass">密码</param>
/// <returns></returns>
{
try
{
SmtpClient smtp = new SmtpClient(); //实例化一个SmtpClient
smtp.DeliveryMethod = SmtpDeliveryMethod.Network; //将smtp的出站方式设为 Network
smtp.EnableSsl = false;//smtp服务器是否启用SSL加密
smtp.Host = "smtp.sina.com.cn"; //指定 smtp 服务器地址
smtp.Port = 25; //指定 smtp 服务器的端口，默认是25，如果采用默认端口，可省去
//如果你的SMTP服务器不需要身份认证，则使用下面的方式，不过，目前基本没有不需要认证的了
smtp.UseDefaultCredentials = true; //如果需要认证，则用下面的方式
smtp.Credentials = new NetworkCredential("qinlin1991@sina.com", "3155446");
MailMessage mm = new MailMessage(); //实例化一个邮件类
mm.Priority = MailPriority.High; //邮件的优先级，分为 Low, Normal, High，通常用 Normal即可
mm.From = new MailAddress("shirilimu@sina.com", "求知科技", Encoding.GetEncoding(936));
//收件方看到的邮件来源；
//第一个参数是发信人邮件地址
//第二参数是发信人显示的名称
//第三个参数是 第二个参数所使用的编码，如果指定不正确，则对方收到后显示乱码
//936是简体中文的codepage值
//注：上面的邮件来源，一定要和你登录邮箱的帐号一致，否则会认证失败
//上面后两个参数的意义， 同 From 的意义
//邮件的抄送者，支持群发，多个邮件地址之间用 半角逗号分开
//当然也可以用全地址，如下：
//邮件的密送者，支持群发，多个邮件地址之间用半角逗号 分开
//当然也可以用全地址，如下：
//mm.Sender = new MailAddress("xxx@xxx.com", "邮件发送者", Encoding.GetEncoding(936));
//可以任意设置，此信息包含在邮件头中，但并不会验证有效性，也不会显示给收件人
//说实话，我不知道有啥实际作用，大家可不理会，也可不写此项
//邮件的接收者，支持群发，多个地址之间用半角逗号 分开
//当然也可以用全地址添加
mm.Subject = "考无忧-个人账号信息"; //邮件标题
mm.SubjectEncoding = Encoding.GetEncoding(936); // 这里非常重要，如果你的邮件标题包含中文，这里一定要指定，否则对方收到的极有可能是乱码。
// 936是简体中文的pagecode，如果是英文标题，这句可以忽略不用
mm.IsBodyHtml = true; //邮件正文是否是HTML格式
mm.BodyEncoding = Encoding.GetEncoding(936); //邮件正文的编码， 设置不正确， 接收者会收到乱码
//可以添加多个附件
smtp.Send(mm); //发送邮件，如果不返回异常，则大功告成了。
}
catch (Exception)
{
return false;
}
return true;
}

0
0

个人资料
• 访问：293241次
• 积分：3174
• 等级：
• 排名：第12835名
• 原创：140篇
• 转载：31篇
• 译文：0篇
• 评论：66条
文章分类
最新评论