数据库中如何存放用户名和登录网站的密码

如题:怎样安全的设置数据库,既能使用户能登录网站,又能保证安全.一般的论坛是怎么设计的.数据库中如何存放用户名和登录网站的密码,而权限不一样该怎么设置.... 如题:
怎样安全的设置数据库,既能使用户能登录网站,又能保证安全.
一般的论坛是怎么设计的.
数据库中如何存放用户名和登录网站的密码,而权限不一样该怎么设置.
展开
 我来答
可以叫我表哥
推荐于2018-05-14 · 知道合伙人数码行家
可以叫我表哥
知道合伙人数码行家
采纳数:25897 获赞数:1464972
2010年毕业于北京化工大学北方学院计算机科学与技术专业毕业,学士学位,工程电子技术行业4年从业经验。

向TA提问 私信TA
展开全部
你可以参考下这个。

/// <summary>
/// 对密码进行MD5加密的函数(添加盐值:&%#@?,:*
/// </summary>
/// <param name="Password"></param>
/// <returns></returns>
public static string getEncryPassword(string Password)
{
string EncryedPassword = FormsAuthentication.HashPasswordForStoringInConfigFile(
Password + "&%#@?$%)@%($)#_$)*", "md5"); // Or "sha1"
return EncryedPassword;
}
/// <summary>
/// 加密
/// </summary>
/// <param name="strText"></param>
/// <returns></returns>
public static string EncryptText(String strText)
{
return Encrypt(strText, "&%#@?$%)@%($)#_$)*");
// return Encrypt(strText,DateTime.Now.ToString() );
}

/// <summary>
/// 解密
/// </summary>
/// <param name="strText"></param>
/// <returns></returns>
public static String DecryptText(String strText)
{
return Decrypt(strText, "&%#@?$%)@%($)#_$)*");
// return Decrypt(strText,DateTime.Now.ToString());
}

/// <summary>
/// 加密函数
/// </summary>
/// <param name="strText"></param>
/// <param name="strEncrKey"></param>
/// <returns></returns>
public static String Encrypt(String strText, String strEncrKey)
{
Byte[] byKey = { };
Byte[] IV = { 0x01, 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF };
try
{
byKey = System.Text.Encoding.UTF8.GetBytes(strEncrKey.Substring(0, 8));
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
Byte[] inputByteArray = Encoding.UTF8.GetBytes(strText);
MemoryStream ms = new MemoryStream();
CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(byKey, IV), CryptoStreamMode.Write);
cs.Write(inputByteArray, 0, inputByteArray.Length);
cs.FlushFinalBlock();
return Convert.ToBase64String(ms.ToArray());
}
catch (Exception ex)
{
return ex.Message;
}
}

/// <summary>
/// 解密函数
/// </summary>
/// <param name="strText"></param>
/// <param name="sDecrKey"></param>
/// <returns></returns>
public static String Decrypt(String strText, String sDecrKey)
{

char[] stBase = strText.ToCharArray();
for (int i = 0; i < stBase.Length; i++)
{
if (stBase[i] == ' ')
{
stBase[i] = '+';
}
}
strText = "";
for (int i = 0; i < stBase.Length; i++)
{
strText += stBase[i];
}
Byte[] byKey = { };
Byte[] IV = { 0x01, 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF };
Byte[] inputByteArray = new byte[strText.Length];
try
{
byKey = System.Text.Encoding.UTF8.GetBytes(sDecrKey.Substring(0, 8));
DESCryptoServiceProvider des = new DESCryptoServiceProvider();

inputByteArray = Convert.FromBase64String(strText);

MemoryStream ms = new MemoryStream();
CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(byKey, IV), CryptoStreamMode.Write);
cs.Write(inputByteArray, 0, inputByteArray.Length);
cs.FlushFinalBlock();
System.Text.Encoding encoding = System.Text.Encoding.UTF8;
return encoding.GetString(ms.ToArray());
}
catch (Exception ex)
{
return ex.Message;
}
}
Zoho Mail
2024-11-01 广告
外贸公司如何注册邮箱?做国际业务一定是要用到能做外贸的邮箱,给大家普及下最近网上说的TOM VIP邮箱。注册邮箱通常需要以下几个步骤选择邮箱服务提供商:首先,您需要选择一个合适的邮箱服务提供商。您可以根据服务商的知名度、口碑、容量、速度、安... 点击进入详情页
本回答由Zoho Mail提供
cyy082666
推荐于2016-08-26 · TA获得超过1295个赞
知道小有建树答主
回答量:323
采纳率:0%
帮助的人:0
展开全部
这个很简单。

你在数据库里创建一张表,表分三列,一列是用户名char型,一列是密码char型,一列是权限级别number型。

当用户在网页输入用户名和密码的时候,就调用这张表看看是否匹配。
你当然可以在前台的应用里通过调用算法把密码加密后再储存到表里,读取的时候再次调用算法解密
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
№完美☆星空№
2009-03-15 · TA获得超过169个赞
知道答主
回答量:226
采纳率:0%
帮助的人:133万
展开全部
id username password grade,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
手机用户49850
2009-03-15
知道答主
回答量:6
采纳率:0%
帮助的人:0
展开全部
这个问题不是一两句话可以解决的
建议你下一个论坛源码,看下它的login系统是如何处理的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式