예제 #1
0
 private void CaesarDecryptBtn_Click(object sender, RoutedEventArgs e)//凯撒解密
 {
     if (Regex.IsMatch(CaesarKey.Text, AllowedKeys) && Regex.IsMatch(CaesarEncrypted.Text, AllowedTexts))
     {
         CaesarPlain.Text = Caesar.Decrypt(CaesarEncrypted.Text, Convert.ToInt32(CaesarKey.Text));
     }
     else
     {
         MessageBox.Show("偏移量必须是正整数、原文或密文必须由字母和空格组成", "输入的数值有误");
     }
 }
예제 #2
0
        private void ForceDecryptBtn_Click(object sender, RoutedEventArgs e)
        {
            string str = "";

            if (Regex.IsMatch(CaesarEncrypted.Text, AllowedTexts))
            {
                for (int i = 1; i < 27; i++)
                {
                    str = str + i + " --> " + Caesar.Decrypt(CaesarEncrypted.Text, i) + Environment.NewLine;//重复执行解密26次,每次偏移量加1,将结果依次输出到原文框
                }
                CaesarPlain.Text = str;
            }
            else
            {
                MessageBox.Show("密文必须由字母和空格组成", "输入的数值有误");
            }
        }//凯撒穷举