Я вижу четыре проблемы с кодом.
1. Вы добавляете байты из исходного текста вместо секретного слова.
Здесь:
encrypted_bytes[i] = (byte)(initial_text_bytes[i] + initial_text_bytes[secret_word_index]);
Используйте вместо:
encrypted_bytes[i] = (byte)(initial_text_bytes[i] + secret_word_bytes[secret_word_index]);
2. Вы используете Encoding.UTF8.GetBytes
, чтобы попытаться декодировать строку base-64.
Здесь:
byte[] initial_text_bytes = Encoding.UTF8.GetBytes(text_criptat_tb.Text);
Вместо этого используйте:
byte[] initial_text_bytes = Convert.FromBase64String(text_criptat_tb.Text);
3. Вы вычитаете байты из начального текста и секретного слова.
Здесь:
encrypted_bytes[i] = (byte)(initial_text_bytes[i] - initial_text_bytes[secret_word_index]);
Используйте вместо:
encrypted_bytes[i] = (byte)(initial_text_bytes[i] - secret_word_bytes[secret_word_index]);
4. Вы используете Convert.ToBase64String
, чтобы попытаться декодировать данные UTF-8.
Здесь:
initial_text_tb.Text = Convert.ToBase64String(encrypted_bytes);
Используйте вместо:
initial_text_tb.Text = Encoding.UTF8.GetString(encrypted_bytes);