feat: decryption functional
* still kind of WIP (a couple more things to check) * added check if cryptmessage length mod 2 == 0
This commit is contained in:
parent
33e268d7dc
commit
f89eec7b96
41
main_form.cs
41
main_form.cs
|
@ -182,6 +182,11 @@ namespace KRY_0x01_ng
|
|||
MessageBox.Show("Only alphabetic characters (with the exception of W) are allowed.\nCheck the cryptmessage for numbers, symbols or tab whitespace and remove them before continuing.", "Error");
|
||||
return;
|
||||
}
|
||||
if (tb_m.Text.Length % 2 != 0)
|
||||
{
|
||||
MessageBox.Show("This pretty sure can't be a message I can deal with (uneven number of characters).", "Error");
|
||||
return;
|
||||
}
|
||||
textBox9.Text = msg;
|
||||
return;
|
||||
}
|
||||
|
@ -291,7 +296,43 @@ namespace KRY_0x01_ng
|
|||
{
|
||||
return;
|
||||
}
|
||||
fill_array_table();
|
||||
check_cryptmessage(textBox9);
|
||||
|
||||
string message = "";
|
||||
string crm = textBox9.Text;
|
||||
int arrtb_gl = arrayTable.GetLength(0);
|
||||
for (int i = 0; i < crm.Length; i+=2)
|
||||
{
|
||||
char ch1 = crm[i];
|
||||
char ch2 = crm[i + 1];
|
||||
char ech1;
|
||||
char ech2;
|
||||
int[] ch1xy = gimme_char_indices(ch1);
|
||||
int[] ch2xy = gimme_char_indices(ch2);
|
||||
|
||||
if (ch1xy[0] == ch2xy[0])
|
||||
{
|
||||
/* c# neg modulo issue hack */
|
||||
ech1 = arrayTable[ch1xy[0], (ch1xy[1] + 4) % arrtb_gl];
|
||||
ech2 = arrayTable[ch2xy[0], (ch2xy[1] + 4) % arrtb_gl];
|
||||
}
|
||||
else if (ch1xy[1] == ch2xy[1])
|
||||
{
|
||||
ech1 = arrayTable[(ch1xy[0] + 4) % arrtb_gl, ch1xy[1]];
|
||||
ech2 = arrayTable[(ch2xy[0] + 4) % arrtb_gl, ch2xy[1]];
|
||||
}
|
||||
else
|
||||
{
|
||||
ech1 = arrayTable[ch1xy[0], ch2xy[1]];
|
||||
ech2 = arrayTable[ch2xy[0], ch1xy[1]];
|
||||
}
|
||||
|
||||
string resulting_digraph = ech1.ToString() + ech2.ToString();
|
||||
message += resulting_digraph;
|
||||
}
|
||||
textBox12.Text = message;
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue