中午问个问题,一下收到三十多个回复,太感谢了,结完贴再散分问一个:关于web.config连接字符串加密的问题

wapit 2010-04-30 02:26:26
网上查到使用.NET自带的办法是web.config要在本机执行命令才加密……

现在的问题是我要把程序打包发给别人,让他连我这边的数据库,但不希望他看到我数据库的密码……

还有就是不希望在现有程序上做太大改动……

呵呵,其实用DES加密然后自己程序中再解密是可以的,只是今天比较懒,不想写……

看有没有现成的办法
...全文
463 57 打赏 收藏 转发到动态 举报
写回复
用AI写文章
57 条回复
切换为时间正序
请发表友善的回复…
发表回复
wapit 2010-05-02
  • 打赏
  • 举报
回复
非常感谢!收获不少,结贴啦!
随风落梦 2010-05-01
  • 打赏
  • 举报
回复
个人感觉还是程序里面加密好点哦!
wcj5689226 2010-05-01
  • 打赏
  • 举报
回复
ASP.NET技术交流群
xiaoyuehen 2010-05-01
  • 打赏
  • 举报
回复
让你调你这边的WebService不就结了。。还更安全!
liq1979 2010-05-01
  • 打赏
  • 举报
回复
接分
libinlink 2010-05-01
  • 打赏
  • 举报
回复
看看啊。。。
zhoulingsmile 2010-05-01
  • 打赏
  • 举报
回复
up up up
duxj007 2010-04-30
  • 打赏
  • 举报
回复
关注~~~~
阿双2009 2010-04-30
  • 打赏
  • 举报
回复
MD5加密可行不
mars199 2010-04-30
  • 打赏
  • 举报
回复
嗯,帮顶吧
tanbin_0521 2010-04-30
  • 打赏
  • 举报
回复
你可以写个类,保存在session里面去,然后编译封装,这也是一个方法。
还有上面那些朋友说的方法也可以。
zhouzangood 2010-04-30
  • 打赏
  • 举报
回复
我是来jf的
studentliudong 2010-04-30
  • 打赏
  • 举报
回复
学习下~~
wuyq11 2010-04-30
  • 打赏
  • 举报
回复
获取连接字符串,再加密解密
aspnet_regiis -pa "NetFrameworkConfigurationKey" "NT AUTHORITY\NETWORK SERVICE"
XP下:aspnet_regiis -pa "NetFrameworkConfigurationKey" "aspnet"
加密:aspnet_regiis -pe "appSettings" -app "/应用程序名 "
解密:aspnet_regiis -pd "appSettings" -app "/应用程序名

private static byte[] Keys = { 0x12};

public static string Encrypt(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;
}
}
public static string Decrypt(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;
}
}
jbz001 2010-04-30
  • 打赏
  • 举报
回复
特来蹭分
yingyuebingya 2010-04-30
  • 打赏
  • 举报
回复

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Security.Cryptography;
using System.Text;
using System.IO;

/// <summary>
/// 密码安全类
/// </summary>
public class SafeUtil
{
private string iv = "1234****"; //种子
private string key = "1234****"; //加密密钥
private Encoding encoding = new UnicodeEncoding();
private DES des = null;

/// <summary>
/// 构造函数
/// </summary>
public SafeUtil()
{
des = new DESCryptoServiceProvider();
}

/// <summary>
/// 设置或获取加密密钥
/// </summary>
public string EncryptKey
{
set { this.key = value; }
}

/// <summary>
/// 要加密字符的编码格式
/// </summary>
public Encoding EncodingMode
{
get { return this.encoding; }
set { this.encoding = value; }
}

/// <summary>
/// 加密字符串并返回加密后的结果
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public string EncryptString(string str)
{
byte[] ivb = Encoding.ASCII.GetBytes(this.iv);
byte[] keyb = Encoding.ASCII.GetBytes(this.key);
byte[] toEncrypt = this.EncodingMode.GetBytes(str);
byte[] encrypted;
ICryptoTransform encrypyor = des.CreateEncryptor(keyb,ivb);
MemoryStream msEncrypt = new MemoryStream();
CryptoStream csEncrypt = new CryptoStream(msEncrypt, encrypyor, CryptoStreamMode.Write);
csEncrypt.Write(toEncrypt, 0, toEncrypt.Length);
csEncrypt.FlushFinalBlock();
encrypted = msEncrypt.ToArray();
csEncrypt.Close();
msEncrypt.Close();
return Convert.ToBase64String(encrypted);
}

/// <summary>
/// 解密给定的字符串
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public string DecryptString(string str)
{
byte[] ivb = Encoding.ASCII.GetBytes(this.iv);
byte[] keyb = Encoding.ASCII.GetBytes(this.key);
byte[] toDecrypt = Convert.FromBase64String(str);
byte[] deCrypted = new byte[toDecrypt.Length];
ICryptoTransform encrypyor = des.CreateEncryptor(keyb, ivb);
MemoryStream msDecrypt = new MemoryStream(toDecrypt);
CryptoStream csDecrypt = new CryptoStream(msDecrypt, encrypyor, CryptoStreamMode.Read);
try
{
csDecrypt.Read(deCrypted, 0, deCrypted.Length);
}
catch (Exception err)
{
throw new ApplicationException(err.Message);
}
finally
{
try
{
msDecrypt.Close();
csDecrypt.Close();
}
catch { ;}
}
return this.EncodingMode.GetString(deCrypted);
}
}



private static string connString = ConfigurationManager.ConnectionStrings["CardShopConnectionString"].ToString();
//解密
jack15850798154 2010-04-30
  • 打赏
  • 举报
回复
参考来源:http://www.cnblogs.com/xiaodi/archive/2005/03/22/123810.html
操作Web.Config: http://www.zu14.cn/2009/04/30/process-app-web-config-by-code/
jack15850798154 2010-04-30
  • 打赏
  • 举报
回复
在.cs文件中加密然后再Web.config中替换
<add key="ConnectionString" value="在后台加密过后的连接字符串信息" />
这样不可以吗??(不对的地方还请包涵)
zpcoder 2010-04-30
  • 打赏
  • 举报
回复
//实例化这个类
System.Configuration.ConnectionStringSettings

//用它可以编辑web.config中的 connection节点;

System.Configuration.ConnectionStringSettings css = new ConnectionStringSettings();
css.Name = "connstr";
css.ConnectionString = 加密("连结字符串");
css.ProviderName = "……";
//这个类可以操作web.config文件
System.Configuration.ConfigXmlDocument cxd;
lawbc 2010-04-30
  • 打赏
  • 举报
回复
没加密过
加载更多回复(36)

62,073

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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