博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[恶心]数据库连接串加密
阅读量:6690 次
发布时间:2019-06-25

本文共 3639 字,大约阅读时间需要 12 分钟。

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Data.Common;namespace System.Data{    ///     /// MultipleActiveResultSets=True;    ///     [Serializable]    public sealed class ConnectionStringBuilder : DbConnectionStringBuilder    {        #region Properties        public bool IsEncrypt        {            get { return base.ContainsKey("KEY"); }        }        public string[] CryptoKeys        {            set            {                if (value.Length < 2)                {                    throw new ArgumentException("value.Length < 2");                }                base["KEY"] = string.Join(DbUtility.Separator, value);            }            get            {                object value;                if (base.TryGetValue("KEY", out value))                {                    string[] args = value.ToString().Split(DbUtility.Separator[0]);                    if (args.Length >= 2)                    {                        return args;                    }                }                return new string[2];            }        }        #endregion        #region Methods        public ConnectionStringBuilder()        {        }        public ConnectionStringBuilder(string connectionString)        {            base.ConnectionString = connectionString;        }        internal string GetDecrypt()        {            if (this.IsEncrypt)            {                string[] args = this.CryptoKeys;                using (CryptoManaged coder = new CryptoManaged(args[0], args[1]))                {                    return coder.Decrypt(base["ENTITY"].ToString());                }            }            return base.ConnectionString;        }        public override string ToString()        {            if (this.IsEncrypt)            {                string[] args = this.CryptoKeys;                using (CryptoManaged coder = new CryptoManaged(args[0], args[1]))                {                    base.Remove("KEY");                    string oldString = base.ConnectionString;                    base.Clear();                    base["ENTITY"] = coder.Encrypt(oldString);                    this.CryptoKeys = args;                    string newString = base.ToString().Replace("\"", string.Empty);                    base.ConnectionString = oldString;                    this.CryptoKeys = args;                    return newString;                }            }            return base.ToString();        }        #endregion    }}
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace Rocky.App{    public partial class ConnectionStringForm : Form    {        private ConnectionStringBuilder builder;        public ConnectionStringForm()        {            InitializeComponent();        }        private void ConnectionStringForm_Load(object sender, EventArgs e)        {            builder = new ConnectionStringBuilder();        }        private void textBox1_Enter(object sender, EventArgs e)        {            if (Clipboard.ContainsText())            {                textBox1.Text = Clipboard.GetText();            }        }        private void button1_Click(object sender, EventArgs e)        {            builder.ConnectionString = textBox1.Text;            builder.CryptoKeys = new string[] { CryptoManaged.MD5Hex("Rocky.TBox"), CryptoManaged.NewSalt };            textBox2.Text = builder.ToString();        }    }}
View Code

 

View Code

 

转载于:https://www.cnblogs.com/Googler/p/3215152.html

你可能感兴趣的文章
[Phoenix] 四、加盐表
查看>>
Notaped++标记选择符合条件的行书签
查看>>
取消Exchange数据库的自动分配功能
查看>>
Screen OS防火墙DoS攻击的检测和防御
查看>>
Dell-R410 配置raid1
查看>>
Go语言之单元测试
查看>>
Xargs用法详解 (Linux 命令使用)
查看>>
会议室邮箱的日历中显示会议主题和显示预约人
查看>>
tomcat中catalina是什么
查看>>
地球人常识手册2
查看>>
Redhat安装系统后开机一直停在进度条处
查看>>
18. Gradle编译其他应用代码流程(六) - 执行Task过程
查看>>
css优先级
查看>>
Dell Compellent的一些缺陷
查看>>
1. Android源代码下载编译
查看>>
2.命令行监控
查看>>
45.du命令
查看>>
resin学习随笔
查看>>
解决bug的技巧
查看>>
iptables详解
查看>>