WinForm下,关于数据库连接的问题.

yaoyaomaomao 2007-09-06 02:06:46
数据库连接我一般有两种方法:
1是将连接字符串写在类里,编译成dll
2是写在ini文件里面.
1方法编译出的dll会被反编译,所以我想给ini文件加密,不知道怎么写.
...全文
181 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
he11o 2007-09-09
  • 打赏
  • 举报
回复

连接串当然要加密,上面有sqlserver的帐号和密码

===================================

权限是可以设置的啊
gui0605 2007-09-06
  • 打赏
  • 举报
回复
加密即可,不建议写在类里,这个应该是可配置的
songcan 2007-09-06
  • 打赏
  • 举报
回复
DES,AES,RSA都可以,不能用MD5 ,SHAR1
music912 2007-09-06
  • 打赏
  • 举报
回复
我现在也用了读写ini的方式,所以也将这些服务器的敏感信息加密了~如下:

server=FSJhAax5GIw3mCIM8j/4WA==
database=EtL1+pb9Mek=
uid=Q/UYZ/sDG20=
pwd=3LMdZ9Z1tMU=
music912 2007-09-06
  • 打赏
  • 举报
回复
可以用SEDO加密:
public class DESCode
{
private static byte[] Keys = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF };
/// <summary>
/// DES加密字符串
/// </summary>
/// <param name="encryptString">待加密的字符串</param>
/// <param name="encryptKey">加密密钥,要求为8位</param>
/// <returns>加密成功返回加密后的字符串,失败返回源串</returns>
public static string EncryptDES(string encryptString, string encryptKey)
{
try
{
byte[] rgbKey = Encoding.UTF8.GetBytes(encryptKey.Substring(0, 8));
byte[] rgbIV = Keys;
byte[] inputByteArray = Encoding.UTF8.GetBytes(encryptString);
DESCryptoServiceProvider dCSP = new DESCryptoServiceProvider();
MemoryStream mStream = new MemoryStream();
CryptoStream cStream = new CryptoStream(mStream, dCSP.CreateEncryptor(rgbKey, rgbIV), CryptoStreamMode.Write);
cStream.Write(inputByteArray, 0, inputByteArray.Length);
cStream.FlushFinalBlock();
return Convert.ToBase64String(mStream.ToArray());
}
catch
{
return encryptString;
}
}
/// <summary>
/// DES解密字符串
/// </summary>
/// <param name="decryptString">待解密的字符串</param>
/// <param name="decryptKey">解密密钥,要求为8位,和加密密钥相同</param>
/// <returns>解密成功返回解密后的字符串,失败返源串</returns>
public static string DecryptDES(string decryptString, string decryptKey)
{
try
{
byte[] rgbKey = Encoding.UTF8.GetBytes(decryptKey);
byte[] rgbIV = Keys;
byte[] inputByteArray = Convert.FromBase64String(decryptString);
DESCryptoServiceProvider DCSP = new DESCryptoServiceProvider();
MemoryStream mStream = new MemoryStream();
CryptoStream cStream = new CryptoStream(mStream, DCSP.CreateDecryptor(rgbKey, rgbIV), CryptoStreamMode.Write);
cStream.Write(inputByteArray, 0, inputByteArray.Length);
cStream.FlushFinalBlock();
return Encoding.UTF8.GetString(mStream.ToArray());
}
catch
{
return decryptString;
}
}
}

调用方法:

解密:DESCode.DecryptDES("待解密的字符串","加密密钥");//"加密密钥"由你自己定义
加密:DESCode.EncryptDES(("待加密的字符串","加密密钥")

yaoyaomaomao 2007-09-06
  • 打赏
  • 举报
回复
连接串当然要加密,上面有sqlserver的帐号和密码
lhzyn 2007-09-06
  • 打赏
  • 举报
回复
MD5加密没法还原的
想简单点话可以用MS的 EnterpriseLibrary
支持连接串加密
grady.lu 2007-09-06
  • 打赏
  • 举报
回复
md5加密,那怎么解密?
xwk789xwk 2007-09-06
  • 打赏
  • 举报
回复
学习之中,帮顶一下
he11o 2007-09-06
  • 打赏
  • 举报
回复
不知道连接串加密是出于什么考虑
bigmingming 2007-09-06
  • 打赏
  • 举报
回复
MD5加密吧
chuxue1342 2007-09-06
  • 打赏
  • 举报
回复
加密!!
stcrane 2007-09-06
  • 打赏
  • 举报
回复
WinForm的没太大必要吧
jxzhang615 2007-09-06
  • 打赏
  • 举报
回复
连接串也加密!
zhchg6666 2007-09-06
  • 打赏
  • 举报
回复
你可以 
把字符串 转成字节 对每个字节使用一个你定义的运算公式运算,之后再转成字符串,别人就不认识了

你要写编码 和解码的2个函数

应该有现成的编解码公式
ivyorg 2007-09-06
  • 打赏
  • 举报
回复
C# 有关于这个命名空间,你查下相关帮助。
zhchg6666 2007-09-06
  • 打赏
  • 举报
回复
有这必要?
he11o 2007-09-06
  • 打赏
  • 举报
回复
有这个必要吗?

110,535

社区成员

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

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

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