请问,连接字符串加密 在百度中,找到对连接字符串进行加密的函数,一个加密函数,一个解密函数我想问的是,对于保存在文件中的加密过的字符串,任何人都可以用解密函数进行解密啊具体是怎么处理的呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这就像保险柜放在那,里面的钱任何人都可以拿走啊。但你没有钥匙你打得开保险柜吗?别人就算知道解密算法,没有key也白搭 前几天我也在考虑这个问题,因为.Net编译的程序可以反编译,所以如果想搞破坏,很容易啊。反编译后,有算法,有密钥。 /// <summary> /// 加密 /// </summary> /// <param name="encryptString">加密内容</param> /// <param name="encryptKey">密匙,长度8位</param> /// <returns>加密后的内容</returns> public static string Encode(string encryptString, string encryptKey) { DESCryptoServiceProvider dCSP = new DESCryptoServiceProvider(); byte[] rgbKey = Encoding.UTF8.GetBytes(encryptKey); byte[] inputByteArray = Encoding.UTF8.GetBytes(encryptString); MemoryStream mStream = new MemoryStream(); CryptoStream cStream = new CryptoStream(mStream, dCSP.CreateEncryptor(rgbKey, rgbKey), CryptoStreamMode.Write); cStream.Write(inputByteArray, 0, inputByteArray.Length); cStream.FlushFinalBlock(); return Convert.ToBase64String(mStream.ToArray()); } /// <summary> /// 解密 /// </summary> /// <param name="decryptString">加密的内容</param> /// <param name="decryptKey">密匙:内容加密的密匙,长度8位</param> /// <returns>解密后的内容</returns> public static string Decode(string decryptString, string decryptKey) { byte[] rgbKey = Encoding.UTF8.GetBytes(decryptKey); byte[] inputByteArray = Convert.FromBase64String(decryptString); DESCryptoServiceProvider DCSP = new DESCryptoServiceProvider(); MemoryStream mStream = new MemoryStream(); CryptoStream cStream = new CryptoStream(mStream, DCSP.CreateDecryptor(rgbKey, rgbKey), CryptoStreamMode.Write); cStream.Write(inputByteArray, 0, inputByteArray.Length); cStream.FlushFinalBlock(); return Encoding.UTF8.GetString(mStream.ToArray()); } LS说的是用户登陆之类的验证吧,像12306那样的?那就建个https证书好了但是那跟连接字符串没有关系。也是在服务端CLR中执行的,运行时Net本身就已经把配置文件中的连接字符串加密了但是如果你说你的代码文件都被人窃取了,那就是另外一回事了 人家说的连接字符串,连数据库(你看他历史发帖记录),你怎么联系到http,想象力太丰富了吧。 不要再误导lz了,lz已经概念不清了。 http://www.cnblogs.com/shuzehui1984713/archive/2010/10/14/1851770.html 文件,是客户端的文件啊,与winform安装程序同一个文件夹文件中的密文是以密文形式存的,但是程序的源代码中有解密函数啊,因为解密后才能用嘛 很简单lz,你不会写程序,什么都不懂都没有关系,鼠标键盘会用就好办。你可以下载一个叫sniffer pro的软件,然后打开它,开始监听你的网络,运行你的程序,试图和服务器连接。连上即可。停止sniffer pro的监听。然后在sniffer pro抓下来的数据中搜索,看看有没有密码,如果有,那就行了。你明白了吧,和你什么配置文件、exe加密之类的事情毫不搭界。你再加密都是徒劳的。 在.net里好像有内置的加密,挺不错的,你可以看看。 没有绝对安全的加密,要么你就用硬件做定时动态密码,双方的硬件密匙通过TCP做动态口令传输,相对安全一点 之前,用Delphi写程序时。早期,是将连接字符串保存在程序中,曾经试过,用UE打开程序可以直接搜到连接字符串,加壳后就搜不到了,但能脱壳。后来,为了安全及灵活,就将连接字符串保存到文件中(目前仍有小点的软件,用INI文件明文保存服务器名、用户名、密码的),怕不安全,就用加密方式存储。如果用Net写,EXE文件可以直接反编译(我之前试过,源代码基本完整),那样,解密函数直接可以复制出来,稍改一下,就可以解密连接字符串了。不知道有没有什么办法可以防止反编译。用混淆效果也不太好。 还有啥稍微好点的办法不啊,我又不会WCF,中间层不会整。软件做好了,都不敢发布!! 这个是RSA私钥加密,公钥解密的问题。.net对于非对称式加密,只支持公钥加密,私钥解密;私钥加密、公钥解密的算法,要自己写才行。 关于继承接口的问题 web js调用CS文件的函数 超级难题如何解析HTML中的JS,不是非常高手勿进 求助:一个很棘手的SQL语句的写法 抽象工厂模式提问,如何,在控制子类中用产品子类做参数 请教2个ListBox传值不传重复值的问题! 谁能给个获取文件crc32的算法啊? 请教trim的问题 xml與<table> 怎样在网页中嵌入WinForm,能不能给出实例!!!!(求救!!!) textbox如何去除焦点!! 刚写了个winform弹框消息提醒demo
别人就算知道解密算法,没有key也白搭
反编译后,有算法,有密钥。
/// <summary>
/// 加密
/// </summary>
/// <param name="encryptString">加密内容</param>
/// <param name="encryptKey">密匙,长度8位</param>
/// <returns>加密后的内容</returns>
public static string Encode(string encryptString, string encryptKey)
{
DESCryptoServiceProvider dCSP = new DESCryptoServiceProvider();
byte[] rgbKey = Encoding.UTF8.GetBytes(encryptKey);
byte[] inputByteArray = Encoding.UTF8.GetBytes(encryptString);
MemoryStream mStream = new MemoryStream();
CryptoStream cStream = new CryptoStream(mStream, dCSP.CreateEncryptor(rgbKey, rgbKey), CryptoStreamMode.Write);
cStream.Write(inputByteArray, 0, inputByteArray.Length);
cStream.FlushFinalBlock();
return Convert.ToBase64String(mStream.ToArray());
} /// <summary>
/// 解密
/// </summary>
/// <param name="decryptString">加密的内容</param>
/// <param name="decryptKey">密匙:内容加密的密匙,长度8位</param>
/// <returns>解密后的内容</returns>
public static string Decode(string decryptString, string decryptKey)
{
byte[] rgbKey = Encoding.UTF8.GetBytes(decryptKey);
byte[] inputByteArray = Convert.FromBase64String(decryptString);
DESCryptoServiceProvider DCSP = new DESCryptoServiceProvider();
MemoryStream mStream = new MemoryStream();
CryptoStream cStream = new CryptoStream(mStream, DCSP.CreateDecryptor(rgbKey, rgbKey), CryptoStreamMode.Write);
cStream.Write(inputByteArray, 0, inputByteArray.Length);
cStream.FlushFinalBlock();
return Encoding.UTF8.GetString(mStream.ToArray());
}
但是如果你说你的代码文件都被人窃取了,那就是另外一回事了
人家说的连接字符串,连数据库(你看他历史发帖记录),你怎么联系到http,想象力太丰富了吧。
不要再误导lz了,lz已经概念不清了。
文件中的密文是以密文形式存的,但是程序的源代码中有解密函数啊,因为解密后才能用嘛
很简单lz,你不会写程序,什么都不懂都没有关系,鼠标键盘会用就好办。
你可以下载一个叫sniffer pro的软件,然后打开它,开始监听你的网络,运行你的程序,试图和服务器连接。连上即可。停止sniffer pro的监听。然后在sniffer pro抓下来的数据中搜索,看看有没有密码,如果有,那就行了。你明白了吧,和你什么配置文件、exe加密之类的事情毫不搭界。你再加密都是徒劳的。
不知道有没有什么办法可以防止反编译。用混淆效果也不太好。
软件做好了,都不敢发布!!
.net对于非对称式加密,只支持公钥加密,私钥解密;
私钥加密、公钥解密的算法,要自己写才行。