Advertisement
Guest User

йцу

a guest
Jun 18th, 2019
157
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 6.57 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.Windows.Forms;
  10. using Npgsql;
  11. using Mono.Security;
  12. using System.Diagnostics;
  13.  
  14. namespace Диплом
  15. {
  16.     public partial class Form1 : Form
  17.     {
  18.         NpgsqlConnection conn;
  19.         public Form1()
  20.         {
  21.             InitializeComponent();
  22.         }
  23.        
  24.         public void decrypt(Object atr)
  25.  
  26.         {
  27.            
  28.             conn = new NpgsqlConnection("Server=localhost;Port=5433;User ID=postgres;Password=postgres;Database=postgis_25_sample"); // подключение к объектно-реляционной СУБД PostgreSQL
  29.  
  30.             conn.Open();
  31.             NpgsqlCommand cmd = new NpgsqlCommand("ALTER TABLE public.\"" + ((Object[])atr)[0] + "\"add \"geom\" geometry", conn); // создание новой колонки типа geometr
  32.             NpgsqlDataReader NpgDReader = cmd.ExecuteReader();
  33.             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); // расшифровка данных
  34.             cmd.CommandTimeout = 1000;
  35.             NpgDReader = cmd.ExecuteReader();
  36.             cmd = new NpgsqlCommand("update public.\"" + ((Object[])atr)[0] + "\" set \"geom\" = ST_GeomfromEWKT(public.\"" + ((Object[])atr)[0] + "\".\"geotext\")", conn); // преобразование и занесение данных в созданную колонку
  37.             NpgDReader = cmd.ExecuteReader();
  38.             cmd = new NpgsqlCommand("ALTER TABLE public.\"" + ((Object[])atr)[0] + "\" drop \"geotext\"", conn); // удаление колонки типа text
  39.             NpgDReader = cmd.ExecuteReader();
  40.             conn.Close();
  41.         }
  42.         public void encrypt(Object atr)
  43.  
  44.         {
  45.  
  46.             conn = new NpgsqlConnection("Server=localhost;Port=5433;User ID=postgres;Password=postgres;Database=postgis_25_sample"); // подключение к объектно-реляционной СУБД PostgreSQL
  47.             conn.Open();
  48.  
  49.             NpgsqlCommand cmd = new NpgsqlCommand("ALTER TABLE public.\"" + ((Object[])atr)[0] + "\"add \"geotext\" text", conn); // создание новой колонки типа geometr
  50.             NpgsqlDataReader NpgDReader = cmd.ExecuteReader();
  51.            
  52.             cmd = new NpgsqlCommand("update public.\"" + ((Object[])atr)[0] + "\" set \"geotext\" = ST_asEWKT(public.\"" + ((Object[])atr)[0] + "\".\"geom\")", conn); // преобразование и занесение данных в созданную колонку
  53.                 cmd.CommandTimeout = 1000;
  54.  
  55.             NpgsqlDataReader NpgDReader2 = cmd.ExecuteReader();
  56.  
  57.             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); // расшифровка данных
  58.            
  59.             NpgDReader = cmd.ExecuteReader();          
  60.             cmd = new NpgsqlCommand("ALTER TABLE public.\"" + ((Object[])atr)[0] + "\" drop \"geom\"", conn); // удаление колонки типа text
  61.             NpgDReader = cmd.ExecuteReader();          
  62.            
  63.             conn.Close();
  64.         }
  65.         private void Form1_Load(object sender, EventArgs e)
  66.         {
  67.  
  68.         }
  69.  
  70.         private void Label1_Click(object sender, EventArgs e)
  71.         {
  72.  
  73.         }
  74.  
  75.         private void Button1_Click(object sender, EventArgs e)
  76.         {
  77.        
  78.            
  79.                 Task[] tasks = new Task[4];
  80.                 if (tabl1.Text.Length > 0)
  81.                 {
  82.                     tasks[0] = new Task(decrypt, new Object[] { tabl1.Text, key1.Text });
  83.                 }
  84.                 if (tabl2.Text.Length > 0)
  85.                 {
  86.                     tasks[1] = new Task(decrypt, new Object[] { tabl2.Text, key2.Text });
  87.                 }
  88.                 if (tabl3.Text.Length > 0)
  89.                 {
  90.                     tasks[2] = new Task(decrypt, new Object[] { tabl3.Text, key3.Text });
  91.                 }
  92.                 if (tabl4.Text.Length > 0)
  93.                 {
  94.                     tasks[3] = new Task(decrypt, new Object[] { tabl4.Text, key4.Text });
  95.                 }
  96.                 Stopwatch sw = new Stopwatch();
  97.                 sw.Start();
  98.                 //tasks[0].Start();
  99.                 //tasks[1].Start();
  100.                 //tasks[2].Start();
  101.                 //tasks[3].Start();
  102.                 if (tasks.Length > 0)
  103.                 {
  104.                     foreach (Task itask in tasks)
  105.                     {
  106.                         itask.Start();
  107.                     }
  108.                 }
  109.                 Task.WaitAll(tasks);
  110.                 sw.Stop();
  111.                 MessageBox.Show("Время расшифровки: " + sw.Elapsed.TotalSeconds, "Данные расшифрованы");
  112.            
  113.         }
  114.  
  115.         private void Tabl1_TextChanged(object sender, EventArgs e)
  116.         {
  117.            
  118.         }
  119.  
  120.         private void Button2_Click(object sender, EventArgs e)
  121.         {
  122.             Task[] tasks = new Task[4];
  123.             if (tabl1.Text.Length > 0)
  124.             {
  125.                 tasks[0] = new Task(encrypt, new Object[] { tabl1.Text, key1.Text });
  126.             }
  127.             if (tabl2.Text.Length > 0)
  128.             {
  129.                 tasks[1] = new Task(encrypt, new Object[] { tabl2.Text, key2.Text });
  130.             }
  131.             if (tabl3.Text.Length > 0)
  132.             {
  133.                 tasks[2] = new Task(encrypt, new Object[] { tabl3.Text, key3.Text });
  134.             }
  135.             if (tabl4.Text.Length > 0)
  136.             {
  137.                 tasks[3] = new Task(encrypt, new Object[] { tabl4.Text, key4.Text });
  138.             }
  139.             Stopwatch sw = new Stopwatch();
  140.             sw.Start();
  141.             //tasks[0].Start();
  142.             //tasks[1].Start();
  143.             //tasks[2].Start();
  144.             //tasks[3].Start();
  145.             if (tasks.Length > 0)
  146.             {
  147.                 foreach (Task itask in tasks)
  148.                 {
  149.                     itask.Start();
  150.                 }
  151.             }
  152.             Task.WaitAll(tasks);
  153.                 sw.Stop();
  154.                 MessageBox.Show("Время шифровки: " + sw.Elapsed.TotalSeconds, "Данные зашифрованы");
  155.             }
  156.         }
  157.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement