Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- using Npgsql;
- using Mono.Security;
- using System.Diagnostics;
- namespace Диплом
- {
- public partial class Form1 : Form
- {
- NpgsqlConnection conn;
- public Form1()
- {
- InitializeComponent();
- }
- public void decrypt(Object atr)
- {
- conn = new NpgsqlConnection("Server=localhost;Port=5433;User ID=postgres;Password=postgres;Database=postgis_25_sample"); // подключение к объектно-реляционной СУБД PostgreSQL
- conn.Open();
- NpgsqlCommand cmd = new NpgsqlCommand("ALTER TABLE public.\"" + ((Object[])atr)[0] + "\"add \"geom\" geometry", conn); // создание новой колонки типа geometr
- NpgsqlDataReader NpgDReader = cmd.ExecuteReader();
- cmd = new NpgsqlCommand("update public.\"" + ((Object[])atr)[0] + "\" set \"geotext\" = pgp_sym_decrypt(cast(public.\"" + ((Object[])atr)[0] + "\".\"geotext\" as bytea),cast('" + ((Object[])atr)[1] + "' as text))", conn); // расшифровка данных
- cmd.CommandTimeout = 1000;
- NpgDReader = cmd.ExecuteReader();
- cmd = new NpgsqlCommand("update public.\"" + ((Object[])atr)[0] + "\" set \"geom\" = ST_GeomfromEWKT(public.\"" + ((Object[])atr)[0] + "\".\"geotext\")", conn); // преобразование и занесение данных в созданную колонку
- NpgDReader = cmd.ExecuteReader();
- cmd = new NpgsqlCommand("ALTER TABLE public.\"" + ((Object[])atr)[0] + "\" drop \"geotext\"", conn); // удаление колонки типа text
- NpgDReader = cmd.ExecuteReader();
- conn.Close();
- }
- public void encrypt(Object atr)
- {
- conn = new NpgsqlConnection("Server=localhost;Port=5433;User ID=postgres;Password=postgres;Database=postgis_25_sample"); // подключение к объектно-реляционной СУБД PostgreSQL
- conn.Open();
- NpgsqlCommand cmd = new NpgsqlCommand("ALTER TABLE public.\"" + ((Object[])atr)[0] + "\"add \"geotext\" text", conn); // создание новой колонки типа geometr
- NpgsqlDataReader NpgDReader = cmd.ExecuteReader();
- cmd = new NpgsqlCommand("update public.\"" + ((Object[])atr)[0] + "\" set \"geotext\" = ST_asEWKT(public.\"" + ((Object[])atr)[0] + "\".\"geom\")", conn); // преобразование и занесение данных в созданную колонку
- cmd.CommandTimeout = 1000;
- NpgsqlDataReader NpgDReader2 = cmd.ExecuteReader();
- cmd = new NpgsqlCommand("update public.\"" + ((Object[])atr)[0] + "\" set \"geom\" = pgp_sym_encrypt(cast(public.\"" + ((Object[])atr)[0] + "\".\"geotext\" as text),cast('" + ((Object[])atr)[1] + "' as text))", conn); // расшифровка данных
- NpgDReader = cmd.ExecuteReader();
- cmd = new NpgsqlCommand("ALTER TABLE public.\"" + ((Object[])atr)[0] + "\" drop \"geom\"", conn); // удаление колонки типа text
- NpgDReader = cmd.ExecuteReader();
- conn.Close();
- }
- private void Form1_Load(object sender, EventArgs e)
- {
- }
- private void Label1_Click(object sender, EventArgs e)
- {
- }
- private void Button1_Click(object sender, EventArgs e)
- {
- Task[] tasks = new Task[4];
- if (tabl1.Text.Length > 0)
- {
- tasks[0] = new Task(decrypt, new Object[] { tabl1.Text, key1.Text });
- }
- if (tabl2.Text.Length > 0)
- {
- tasks[1] = new Task(decrypt, new Object[] { tabl2.Text, key2.Text });
- }
- if (tabl3.Text.Length > 0)
- {
- tasks[2] = new Task(decrypt, new Object[] { tabl3.Text, key3.Text });
- }
- if (tabl4.Text.Length > 0)
- {
- tasks[3] = new Task(decrypt, new Object[] { tabl4.Text, key4.Text });
- }
- Stopwatch sw = new Stopwatch();
- sw.Start();
- //tasks[0].Start();
- //tasks[1].Start();
- //tasks[2].Start();
- //tasks[3].Start();
- if (tasks.Length > 0)
- {
- foreach (Task itask in tasks)
- {
- itask.Start();
- }
- }
- Task.WaitAll(tasks);
- sw.Stop();
- MessageBox.Show("Время расшифровки: " + sw.Elapsed.TotalSeconds, "Данные расшифрованы");
- }
- private void Tabl1_TextChanged(object sender, EventArgs e)
- {
- }
- private void Button2_Click(object sender, EventArgs e)
- {
- Task[] tasks = new Task[4];
- if (tabl1.Text.Length > 0)
- {
- tasks[0] = new Task(encrypt, new Object[] { tabl1.Text, key1.Text });
- }
- if (tabl2.Text.Length > 0)
- {
- tasks[1] = new Task(encrypt, new Object[] { tabl2.Text, key2.Text });
- }
- if (tabl3.Text.Length > 0)
- {
- tasks[2] = new Task(encrypt, new Object[] { tabl3.Text, key3.Text });
- }
- if (tabl4.Text.Length > 0)
- {
- tasks[3] = new Task(encrypt, new Object[] { tabl4.Text, key4.Text });
- }
- Stopwatch sw = new Stopwatch();
- sw.Start();
- //tasks[0].Start();
- //tasks[1].Start();
- //tasks[2].Start();
- //tasks[3].Start();
- if (tasks.Length > 0)
- {
- foreach (Task itask in tasks)
- {
- itask.Start();
- }
- }
- Task.WaitAll(tasks);
- sw.Stop();
- MessageBox.Show("Время шифровки: " + sw.Elapsed.TotalSeconds, "Данные зашифрованы");
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement