예제 #1
0
 private void Decrypt_Click(object sender, RoutedEventArgs e)
 {
     var lines = File.ReadAllLines(pathFileTB.Text);
     var close_key = File.ReadAllLines(pathkeyTB.Text);
     var E = new BigInteger(close_key[0].Split(' ').Select(a => byte.Parse(a.ToString(), NumberStyles.HexNumber)).ToArray());
     var N = new BigInteger(close_key[1].Split(' ').Select(a => byte.Parse(a.ToString(), NumberStyles.HexNumber)).ToArray());
     var cryptArr = new BigInteger[lines.Length];
     for (int i = 0, k = 0; i < lines.Length; i++)
     {
         cryptArr[k++] = RSAEx.DeCrypt(new BigInteger(lines[i].Split(' ').Select(a => byte.Parse(a.ToString(), NumberStyles.HexNumber)).ToArray()), E, N);
     }
     var bytes = cryptArr.SelectMany(a => a.ToByteArray()).ToArray();
     File.WriteAllBytes(pathFiledecTB.Text, bytes);
     MessageBox.Show("Расшифрование завершено!");
 }
예제 #2
0
        private void EncryptPass(object sender, RoutedEventArgs e)
        {
            var bytes    = File.ReadAllBytes(pathPassTB.Text);
            var open_key = File.ReadAllLines(SenderPath + @"\open_key.txt");
            var D        = new BigInteger(open_key[0].Split(' ').Select(a => byte.Parse(a.ToString(), NumberStyles.HexNumber)).ToArray());
            var N        = new BigInteger(open_key[1].Split(' ').Select(a => byte.Parse(a.ToString(), NumberStyles.HexNumber)).ToArray());
            var cryptArr = new BigInteger[bytes.Length / N.ToByteArray().Length + 1];

            for (int i = 0, k = 0; i < bytes.Length; i = i)
            {
                var data = bytes.Skip(i).Take(N.ToByteArray().Length).ToArray();
                cryptArr[k++] = RSAEx.EnCrypt(new BigInteger(data), D, N);
                i            += data.Length;
            }
            File.WriteAllLines(RecipientPath + @"\pass.cod", cryptArr.Select(intg => string.Join(" ", intg.ToByteArray().Select(a => a.ToString("X")))));
            decryptPassGrid.Visibility = Visibility.Visible;
        }
예제 #3
0
        private void encryptFile(object sender, RoutedEventArgs e)
        {
            var bytes    = File.ReadAllBytes(filePathOpen.Text);
            var open_key = File.ReadAllLines(SenderPath + @"\open_key.txt");
            var D        = new BigInteger(open_key[0].Split(' ').Select(a => byte.Parse(a.ToString(), NumberStyles.HexNumber)).ToArray());
            var N        = new BigInteger(open_key[1].Split(' ').Select(a => byte.Parse(a.ToString(), NumberStyles.HexNumber)).ToArray());
            var cryptArr = new BigInteger[(bytes.Length / (N.ToByteArray().Length - 1) + 1)];

            for (int i = 0, k = 0; i < bytes.Length; i = i)
            {
                var data = bytes.Skip(i).Take(N.ToByteArray().Length - 1).ToArray();
                cryptArr[k++] = RSAEx.EnCrypt(new BigInteger(data), D, N);
                i            += data.Length;
            }
            File.WriteAllLines(filePathEncrypt.Text, cryptArr.Select(intg => string.Join(" ", intg.ToByteArray().Select(a => a.ToString("X")))));
            MessageBox.Show("Шифрование завершено");
        }
예제 #4
0
        private void DecryptPass(object sender, RoutedEventArgs e)
        {
            var lines     = File.ReadAllLines(pathCodPassTB.Text);
            var close_key = File.ReadAllLines(RecipientPath + @"\close_key.txt");
            var E         = new BigInteger(close_key[0].Split(' ').Select(a => byte.Parse(a.ToString(), NumberStyles.HexNumber)).ToArray());
            var N         = new BigInteger(close_key[1].Split(' ').Select(a => byte.Parse(a.ToString(), NumberStyles.HexNumber)).ToArray());
            var cryptArr  = new BigInteger[lines.Length];

            for (int i = 0, k = 0; i < lines.Length; i++)
            {
                cryptArr[k++] = RSAEx.DeCrypt(new BigInteger(lines[i].Split(' ').Select(a => byte.Parse(a.ToString(), NumberStyles.HexNumber)).ToArray()), E, N);
            }
            var bytes = cryptArr.SelectMany(a => a.ToByteArray()).ToArray();

            File.WriteAllBytes(RecipientPath + @"\pass.txt", bytes);
            encryptMGrid.Visibility = Visibility.Visible;
            ;
        }