Member 13664778 Ответов: 2

Привет, я использую C# и делаю шифратор/дешифратор, и моя кнопка дешифрации не работает, она запускается нормально, но когда я нажимаю кнопку, кажется, ничего не происходит.


это мой код кнопка 2 не работает но появляется при запуске

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 System.Security.Cryptography;

namespace WindowsFormsApp1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        byte[] encrypted;
        private void button1_Click(object sender, EventArgs e)
        {
            TripleDESCryptoServiceProvider triple = new TripleDESCryptoServiceProvider();
            UTF8Encoding u = new UTF8Encoding();
            MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
            triple.Key = md5.ComputeHash(u.GetBytes(textBox1.Text));
            triple.Mode = CipherMode.ECB;
            triple.Padding = PaddingMode.PKCS7;
            ICryptoTransform trans = triple.CreateEncryptor();
            encrypted = trans.TransformFinalBlock(u.GetBytes(textBox2.Text), 0, u.GetBytes(textBox2.Text).Length);
            textBox3.Text = BitConverter.ToString(encrypted);
        }

        private void button2_Click(object sender, EventArgs e)
        {
            TripleDESCryptoServiceProvider triple = new TripleDESCryptoServiceProvider();
            MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
            UTF8Encoding u = new UTF8Encoding();
            triple.Key = md5.ComputeHash(u.GetBytes(textBox1.Text));
            triple.Mode = CipherMode.ECB;
            triple.Padding = PaddingMode.PKCS7;
            ICryptoTransform trans = triple.CreateDecryptor();
            textBox5.Text = u.GetString(trans.TransformFinalBlock(encrypted, 0, encrypted.Length));
        }
    }
}


Что я уже пробовал:

я много чего перепробовал но безрезультатно

2 Ответов

Рейтинг:
17

an0ther1

Обратитесь к следующей статье MSDN. В нем есть пример, который шифрует и расшифровывает с помощью тройного шифрования DES - это приложение командной строки, но вы должны иметь возможность редактировать его по мере необходимости.

Класс Rfc2898DeriveBytes (System.Безопасность.Криптография)[^]

с уважением


Рейтинг:
11

Richard MacCutchan

Цитата:
Доступны более новые хэш-функции, такие как безопасные хэш-алгоритмы SHA-256 и SHA-512. Рассмотрите возможность использования класса SHA256 или SHA512 вместо класса MD5CryptoServiceProvider. Используйте MD5CryptoServiceProvider только для совместимости с устаревшими приложениями и данными.