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.Text;
- using System.Windows.Forms;
- using System.Text.RegularExpressions;
- using System.IO;
- using System.Threading;
- namespace BENcrypt
- {
- public partial class Form1 : Form
- {
- public string charArray;
- public long KeyInt;
- public string input;
- public string output;
- XMLclass XmlClass;
- public Form1()
- {
- InitializeComponent();
- }
- private void Form1_Load(object sender, EventArgs e)
- {
- setCharArray();
- XmlClass = new XMLclass();
- XmlClass.XMLpath = Environment.SpecialFolder.ApplicationData + "\\BENcrypt\\config.xml";
- if (File.Exists(XmlClass.XMLpath))
- {
- string[] config = XmlClass.ConfigData;
- //input, ouput, key, log
- txtIn.Text = config[0];
- txtOut.Text = config[1];
- txtKey.Text = config[2];
- txtLog.Text = config[3];
- }
- }
- private void btnEn_Click(object sender, EventArgs e)
- {
- log("-------------------------\r\nEncryption event started");
- while (true)
- {
- if (txtKey.Text.Length == 0)
- {
- log("Error: Key cannot be empty");
- break;
- }
- else if (txtIn.Text.Length == 0)
- {
- log("Error: Input cannot be empty");
- break;
- }
- string result = encrypt(txtIn.Text, txtKey.Text);
- log("Encryption finished.");
- txtOut.Text = result;
- break;
- }
- }
- private void btnDe_Click(object sender, EventArgs e)
- {
- while (true)
- {
- //string pattern = "/^[(0-9]+[:.]+$/";
- //string str = txtIn.Text;
- /*if (!Regex.Match(str, pattern).Success)
- {
- log("-------------------------\r\nCannot decrypt - Unrecognized format\r\nMust be like:\r\nxx:xxx:x:xxxxx:xxx\r\ne.t.c.");
- break;
- }*/
- log("-------------------------\r\nDecryption event started");
- while (true)
- {
- if (txtKey.Text.Length == 0)
- {
- log("Error: Key cannot be empty");
- break;
- }
- else if (txtIn.Text.Length == 0)
- {
- log("Error: Input cannot be empty");
- break;
- }
- string result = decrypt(txtIn.Text, txtKey.Text);
- txtOut.Text = result;
- break;
- }
- break;
- }
- }
- private long generateKey(string x)
- {
- log("Generating numeric key (" + x + ")");
- int[] y = new int[x.Length];
- string z = "";
- for (int i = 0; i < x.Length; i++)
- {
- int bz = z.Length;
- y[i] = charArray.IndexOf(x[i]);
- z += y[i].ToString();
- }
- long kfinal = 0;
- try
- {
- kfinal = Convert.ToInt32(z) / z.Length / z.Length;
- }
- catch (Exception ex)
- {
- kfinal = 0;
- MessageBox.Show(ex.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
- }
- log("Key generated");
- return kfinal;
- }
- private void setCharArray()
- {
- charArray = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890 !\"£$%^&*()_-+=[]{};:'@#~,<.>/?`¬|\\/";
- }
- private string decrypt(string str, string key)
- {
- log("Starting Decryption process...");
- KeyInt = generateKey(key);
- string output = "";
- if (str[str.Length - 1] != ':')
- {
- str = str + ':'.ToString();
- }
- // Get number sections, range of numbers before ':'
- int erl = 0;
- while (true)
- {
- string[] secRange = new string[str.Length];
- int seci = 0;
- for (int i = 0; i < str.Length; i++)
- {
- if (str[i] != ':')
- {
- secRange[seci] += str[i];
- }
- else
- {
- seci++;
- }
- }
- char[] dchars = new char[str.Length];
- for (int i = 0; i < seci; i++)
- {
- int sr = 0;
- try
- {
- sr = Convert.ToInt32(secRange[i]);
- }
- catch
- {
- log("Could not decrypt string");
- erl++;
- break;
- }
- int conv = 0;
- try
- {
- conv = sr / Convert.ToInt32(KeyInt);
- }
- catch
- {
- log("Could not decrypt string");
- erl++;
- break;
- }
- try
- {
- output += charArray[conv];
- }
- catch
- {
- log("Could not decrypt string");
- erl++;
- break;
- }
- log("'" + sr.ToString() + "' => '" + charArray[conv] + "'");
- }
- if(erl==0)
- log("Decrypted");
- break;
- }
- return output;
- }
- private string encrypt(string str, string key)
- {
- log("Starting Encryption process...");
- KeyInt = generateKey(key);
- string output = "";
- while (true)
- {
- if (str.Contains("\r\n"))
- {
- str = str.Replace(Environment.NewLine,"");
- }
- for (int i = 0; i < str.Length; i++)
- {
- int bl = output.Length;
- output += (charArray.IndexOf(str[i]) * KeyInt).ToString() + ":";
- log("'" + str[i] + "' => '" + (charArray.IndexOf(str[i]) * KeyInt).ToString() + "'");
- }
- break;
- }
- return output.TrimEnd(':');
- }
- private void log(string str)
- {
- txtLog.AppendText(str + "\r\n");
- }
- private void linkClear_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
- {
- txtLog.Clear();
- }
- private void linkSave_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
- {
- if (txtLog.Text.Length > 0)
- {
- SaveFileDialog sfd = new SaveFileDialog();
- sfd.DefaultExt = "txt";
- sfd.Filter = "Text File (*.txt)|*.txt";
- sfd.ShowDialog();
- if (sfd.FileName.Length > 0)
- {
- System.IO.StreamWriter sw = new System.IO.StreamWriter(sfd.FileName);
- sw.Write(txtLog.Text);
- sw.Close();
- }
- }
- }
- private void linkPaste_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
- {
- if (Clipboard.ContainsText())
- {
- txtIn.Text = Clipboard.GetText();
- log("Pasted text");
- if (Clipboard.GetText().Contains(Environment.NewLine))
- {
- log("Note: Line breaks will be removed");
- }
- }
- else
- {
- log("Clipboard data empty or not in text format");
- }
- }
- private void linkCopy_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
- {
- if (txtOut.Text.Length > 0)
- {
- Clipboard.SetText(txtOut.Text);
- log("Copied text");
- }
- else
- {
- log("Nothing to copy");
- }
- }
- private void linkClearIn_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
- {
- txtIn.Clear();
- }
- private void linkClearOut_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
- {
- txtOut.Clear();
- }
- private void linkLabel2_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
- {
- string a = txtIn.Text;
- string b = txtOut.Text;
- txtIn.Text = b;
- txtOut.Text = a;
- }
- private void newToolStripMenuItem_Click(object sender, EventArgs e)
- {
- //New
- foreach(Control c in this.Controls)
- {
- if (c is TextBox)
- {
- ((TextBox)c).Clear();
- }
- }
- }
- private void loadLogToolStripMenuItem_Click(object sender, EventArgs e)
- {
- txtLog.Text = loadFile();
- }
- private void loadOutput_Click(object sender, EventArgs e)
- {
- txtOut.Text = loadFile();
- }
- private string loadFile()
- {
- string result_str = String.Empty;
- OpenFileDialog x = new OpenFileDialog();
- StreamReader y;
- while (true)
- {
- x.ShowDialog();
- if (x.FileName.Length == 0)
- break;
- else
- y = new StreamReader(x.FileName);
- if (File.Exists(x.FileName))
- result_str = y.ReadToEnd();
- else
- MessageBox.Show("Error loading file. File doesn't exist!", "Error");
- y.Close();
- break;
- }
- return result_str;
- }
- private bool saveFile(string x)
- {
- SaveFileDialog y = new SaveFileDialog();
- y.DefaultExt = "Text file (*.txt)|*.txt|Any file type (*.*)|*.*";
- StreamWriter w;
- while (true)
- {
- y.ShowDialog();
- if (y.FileName.Length != 0)
- {
- try
- {
- w = new StreamWriter(y.FileName);
- w.Write(x);
- w.Close();
- }
- catch
- {
- return false;
- }
- return true;
- }
- else
- {
- return true;
- }
- }
- }
- private void saveLogToolStripMenuItem_Click(object sender, EventArgs e)
- {
- bool save = saveFile(txtLog.Text);
- if (!save)
- MessageBox.Show("Error saving file", "Error");
- else
- MessageBox.Show("Saved successfully", "", MessageBoxButtons.OK, MessageBoxIcon.Information);
- }
- private void saveOut_Click(object sender, EventArgs e)
- {
- bool save = saveFile(txtOut.Text);
- if (!save)
- MessageBox.Show("Error saving file", "Error");
- else
- MessageBox.Show("Saved successfully", "", MessageBoxButtons.OK, MessageBoxIcon.Information);
- }
- private void exitToolStrip_Click(object sender, EventArgs e)
- {
- Application.Exit();
- }
- private void openHelpToolStripMenuItem_Click(object sender, EventArgs e)
- {
- }
- private void Form1_FormClosing(object sender, FormClosingEventArgs e)
- {
- XmlClass.saveConfig(txtIn.Text, txtOut.Text, txtKey.Text, txtLog.Text);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement