C#如何MD5加密

liuzhengyizenith 2009-05-17 09:01:26
数据库是不怎么安全的,当我用C#连接数据库后,给别用的时候,他就可能看到我数据库里面的信息。但我想只让他查询访问等操作,肯定不能动我数据库里面的东西,更不能把我里面的信息取走了,所以我必须给我数据库用MD5加密?但我不会加密,怎么办?你能解决吗?
...全文
7810 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
bxqybxqy 2011-08-11
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 mrwsr 的回复:]

使用aspnet_regiis工具呀:

C:\Windows\Microsoft.NET\Framework\v2.0.50727>aspnet_regiis.exe -pef "connectionStrings" "E:\ASP.NET WebSites\Practice_N
orthwind\Practice_Northwind"
正在加密配置节...
成功!

加密成功后……
[/Quote]

踏破铁鞋无觅处 哈 哈 兄弟我正想要找这个呢 谢谢了
whishtking 2011-08-09
  • 打赏
  • 举报
回复
wenrenhua08 你的加密程序在哪里我怎么没有找到啊。。
zhengliyan_star 2009-05-18
  • 打赏
  • 举报
回复
public static string get32Md5(string str)
{
try
{
string cl = str;
string pwd = "";
MD5 md5 = MD5.Create();//实例化一个md5对像
// 加密后是一个字节类型的数组,这里要注意编码UTF8/Unicode等的选择 
byte[] s = md5.ComputeHash(Encoding.UTF8.GetBytes(cl));

// 通过使用循环,将字节类型的数组转换为字符串,此字符串是常规字符格式化所得

for (int i = 0; i < s.Length; i++)
{
// 将得到的字符串使用十六进制类型格式。格式后的字符是小写的字母,如果使用大写(X)则格式后的字符是大写字符

pwd = pwd + s[i].ToString("X");

}
return pwd;
}
catch (Exception ex)
{
return null;
}
}
suners 2009-05-18
  • 打赏
  • 举报
回复
怎么没有实际的可靠的答案呢
整点实际的多学习学习理论 。。
s32702 2009-05-18
  • 打赏
  • 举报
回复
用MD5或者SHA1都是一样的。不可逆啊。
wenrenhua08 2009-05-18
  • 打赏
  • 举报
回复
我的blog里有多种加密方法,可去参考。
beckfun 2009-05-18
  • 打赏
  • 举报
回复
很明显LZ对MD5加密理解上有错误
柳晛 2009-05-18
  • 打赏
  • 举报
回复
using System.Web.Security;

string 密文 = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile("明文", "MD5");

注意,MD5不可逆,只能加密不能解密,如果数据需要还原成明文再使用,不要用MD5。
mrwsr 2009-05-17
  • 打赏
  • 举报
回复
使用aspnet_regiis工具呀:

C:\Windows\Microsoft.NET\Framework\v2.0.50727>aspnet_regiis.exe -pef "connectionStrings" "E:\ASP.NET WebSites\Practice_N
orthwind\Practice_Northwind"
正在加密配置节...
成功!

加密成功后:


<connectionStrings configProtectionProvider="RsaProtectedConfigurationProvider">
<EncryptedData Type="http://www.w3.org/2001/04/xmlenc#Element"
xmlns="http://www.w3.org/2001/04/xmlenc#">
<EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc" />
<KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
<EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#">
<EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5" />
<KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
<KeyName>Rsa Key</KeyName>
</KeyInfo>
<CipherData>
<CipherValue>cGqkexvQnfv/zp5pRwxnTwGeAXo6BfG0MQtwr6rOhdWUxRZxixWmcnPhnK6AHHZj2hCcp/TyXTJenQitrdNatQaGg2sSHut0MmyLg3OZkpXmQu5+ankm37/k+FIOdx9pY2qKtQEWgWK3EffyOnpDAEv8V6hQ9RomJqhLmw/JT4w=</CipherValue>
</CipherData>
</EncryptedKey>
</KeyInfo>
<CipherData>
<CipherValue>k4OMiQEB9q4rHx9AavmEyBmvtsxY30kOr26D1aycMvWo6mZkWjDXFeGQcHdUkJa7Xd7oz/7ASjVvRoXYns6UfE9on00/VkfCZz/I95z0v+HR+KrXd9QaA3vre4qMc9GixnUr2Alz33otWg7lSdGKenD+eYIDfAmC/nHFOuN/NGavoD4j/NPBOeZw/CcMAqoMBPH/MVto7HkVxp3wOwD1SiZA+ldylycaSSNV8pS/Gmm3EaKNyFXrYB0YruntHTNz/LAhXDoz5s1d3Ol2BIp/MP3V9JM43WJbfFfqXGJjvKg=</CipherValue>
</CipherData>
</EncryptedData>
</connectionStrings>


C:\Windows\Microsoft.NET\Framework\v2.0.50727>aspnet_regiis.exe -pdf "connectionStrings" "E:\ASP.NET WebSites\Practice_N
orthwind\Practice_Northwind"
正在解密配置节...
成功!



解密成功后Connectionstring恢复原样:


<add name="NorthwindConnectionString" connectionString="Data Source=WSR-PC;Initial Catalog=Northwind;Integrated Security=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
  • 打赏
  • 举报
回复
路过帮顶
csboyi 2009-05-17
  • 打赏
  • 举报
回复
告诉你一个方法,你给他一个数据库帐号让他只有别的权限,把对你数据库的权限只限定你的帐号可以进行更改就可以 了
wuyq11 2009-05-17
  • 打赏
  • 举报
回复
md5 加密只是加密数据。
配置数据库操作权限。用不同用户操作。如果有数据库,很难控制。
Fibona 2009-05-17
  • 打赏
  • 举报
回复
MD5加密一般是用在网站或者应用程序的用户明密码,等不需要明文显示的地方,对数据库全部加密一般都不用MD5,而是用三重DES加密,因为可以解密
mabailin 2009-05-17
  • 打赏
  • 举报
回复
MD5算法是单向加密,一般只用作验证性加密,好像不是你说的密码式加密
ld1201 2009-05-17
  • 打赏
  • 举报
回复
md5一般是用来加密密码的。是不可逆的。
/// <summary>
/// 获取MD5值
/// </summary>
/// <param name="str">加密的字符串</param>
/// <returns>返回MD5值</returns>
public static string GetMD5(string str)
{
return System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(str, "MD5");
}



要是可以加密可以解密的建议用base64

编码:
byte[] bytes=Encoding.Default.GetBytes("要转换的字符串");
Convert.ToBase64String(bytes);
解码:
//"ztKwrsTj"是“我爱你”的base64编码
byte[] outputb = Convert.FromBase64String("ztKwrsTj");
string orgStr= Encoding.Default.GetString(outputb);
JackLeiMM 2009-05-17
  • 打赏
  • 举报
回复

public static string GetMD5Hash(String input)
{
MD5 md5 = new MD5CryptoServiceProvider();

byte[] res = md5.ComputeHash(Encoding.Default.GetBytes(input), 0, input.Length);
char[] temp = new char[res.Length];

System.Array.Copy(res, temp, res.Length);

return new String(temp);
}

/// <summary>
/// 获得MD5的16进制结果
/// </summary>

public static string GetMD5HashHex(String input)
{
MD5 md5 = new MD5CryptoServiceProvider();
DES des = new DESCryptoServiceProvider();
byte[] res = md5.ComputeHash(Encoding.Default.GetBytes(input), 0, input.Length);

String returnThis = "";

for (int i = 0; i < res.Length; i++)
{
returnThis += System.Uri.HexEscape((char)res[i]);
}
returnThis = returnThis.Replace("%", "");
returnThis = returnThis.ToLower();

return returnThis;


}

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧