首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

请教,连接字符串加密

2013-03-13 
请问,连接字符串加密在百度中,找到对连接字符串进行加密的函数,一个加密函数,一个解密函数我想问的是,对于

请问,连接字符串加密
在百度中,找到对连接字符串进行加密的函数,一个加密函数,一个解密函数
我想问的是,对于保存在文件中的加密过的字符串,任何人都可以用解密函数进行解密啊
具体是怎么处理的呢?
[解决办法]
这就像保险柜放在那,里面的钱任何人都可以拿走啊。但你没有钥匙你打得开保险柜吗?
别人就算知道解密算法,没有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());
        } 


[解决办法]
你要是想完全保密,我感觉这个难以实现,我前几天在做一个会员的项目,也在想加密这一块,最后我使用的是直接用md5来加,客户端把密文与数据发给服务器,服务器上在对数据进行一次加密,然后判断两个密文是否一样。
[解决办法]
之前回答你了,问题出在你和服务器通讯的过程中,密码明文传输,很容易获取。

无论你怎么加密,程序运行的时候都得解密还原成明文的密码送给服务器,这个过程密码就泄露了。
[解决办法]
你服务器都被攻破了 哪还有什么号说的
[解决办法]
没有绝对的安全.
[解决办法]
引用:
之前回答你了,问题出在你和服务器通讯的过程中,密码明文传输,很容易获取。

无论你怎么加密,程序运行的时候都得解密还原成明文的密码送给服务器,这个过程密码就泄露了。

LS说的是用户登陆之类的验证吧,像12306那样的?那就建个https证书好了

但是那跟连接字符串没有关系。也是在服务端CLR中执行的,运行时Net本身就已经把配置文件中的连接字符串加密了
但是如果你说你的代码文件都被人窃取了,那就是另外一回事了
[解决办法]
引用:
引用:之前回答你了,问题出在你和服务器通讯的过程中,密码明文传输,很容易获取。

无论你怎么加密,程序运行的时候都得解密还原成明文的密码送给服务器,这个过程密码就泄露了。
LS说的是用户登陆之类的验证吧,像12306那样的?那就建个https证书好了

但是那跟连接字符串没有关系。也是在服务端CLR中执行的,运行时Net本身就已……


人家说的连接字符串,连数据库(你看他历史发帖记录),你怎么联系到http,想象力太丰富了吧。
[解决办法]
引用:
引用:之前回答你了,问题出在你和服务器通讯的过程中,密码明文传输,很容易获取。

无论你怎么加密,程序运行的时候都得解密还原成明文的密码送给服务器,这个过程密码就泄露了。
LS说的是用户登陆之类的验证吧,像12306那样的?那就建个https证书好了

但是那跟连接字符串没有关系。也是在服务端CLR中执行的,运行时Net本身就已……


不要再误导lz了,lz已经概念不清了。
[解决办法]
http://www.cnblogs.com/shuzehui1984713/archive/2010/10/14/1851770.html
[解决办法]
不明白,我想问几个问题
1.楼主所说的存在于文件中,存在于哪里的文件中?客户端,还是本机
2.文件中的密文是以明文形式存在还是密文?

[解决办法]
引用:
引用:不明白,我想问几个问题
1.楼主所说的存在于文件中,存在于哪里的文件中?客户端,还是本机
2.文件中的密文是以明文形式存在还是密文?
文件,是客户端的文件啊,与winform安装程序同一个文件夹
文件中的密文是以密文形式存的,但是程序的源代码中有解密函数啊,因为解密后才能用嘛


很简单lz,你不会写程序,什么都不懂都没有关系,鼠标键盘会用就好办。
你可以下载一个叫sniffer pro的软件,然后打开它,开始监听你的网络,运行你的程序,试图和服务器连接。连上即可。停止sniffer pro的监听。然后在sniffer pro抓下来的数据中搜索,看看有没有密码,如果有,那就行了。

你明白了吧,和你什么配置文件、exe加密之类的事情毫不搭界。你再加密都是徒劳的。
------解决方案--------------------


想加密 一般的加密解密就行了.
防君子不防小人
[解决办法]
在.net里好像有内置的加密,挺不错的,你可以看看。
[解决办法]
没有绝对安全的加密,要么你就用硬件做定时动态密码,双方的硬件密匙通过TCP做动态口令传输,相对安全一点
[解决办法]
你的程序不被反编译,那连接串还是安全的。可以考虑加密程序。
[解决办法]
之前,用Delphi写程序时。早期,是将连接字符串保存在程序中,曾经试过,用UE打开程序可以直接搜到连接字符串,加壳后就搜不到了,但能脱壳。后来,为了安全及灵活,就将连接字符串保存到文件中(目前仍有小点的软件,用INI文件明文保存服务器名、用户名、密码的),怕不安全,就用加密方式存储。

如果用Net写,EXE文件可以直接反编译(我之前试过,源代码基本完整),那样,解密函数直接可以复制出来,稍改一下,就可以解密连接字符串了。
不知道有没有什么办法可以防止反编译。用混淆效果也不太好。
[解决办法]
这个是RSA私钥加密,公钥解密的问题。
.net对于非对称式加密,只支持公钥加密,私钥解密;
私钥加密、公钥解密的算法,要自己写才行。
[解决办法]

引用:
引用:之前,用Delphi写程序时。早期,是将连接字符串保存在程序中,曾经试过,用UE打开程序可以直接搜到连接字符串,加壳后就搜不到了,但能脱壳。后来,为了安全及灵活,就将连接字符串保存到文件中(目前仍有小点的软件,用INI文件明文保存服务器名、用户名、密码的),怕不安全,就用加密方式存储。

如果用Net写,EXE文件可以直接反编译(……


MD5根本就不是加密算法,而是哈希算法,它产生的结果是不可逆的。

热点排行