当使用Caesar解密程序时,很多“U”都会得到输出。 C#

时间:2015-11-05 19:13:12

标签: c# encryption caesar-cipher

using System;

class Decrypter 
{
static void Main ( string [] args )
{ 
    //The encrypted data is read from a file to a string, this 
    string encryptedData = System.IO.File.ReadAllText(@"C:\Users\TomTower\Desktop\Programming and Data Structures\Assessment 1\EncryptedText.txt");
    char[] alphabet = {'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};

    // The code is supposed to take every character in an input string and left shift them back a 5 places. Y becomes T. B becomes W
    foreach(char c in encryptedData)
    {
        if (c == ' ')
            Console.Write(" ");
            else
            {
                int charPosition = 0;

                charPosition = Array.IndexOf(alphabet, c);

                charPosition = charPosition - 5;

                if (charPosition < 0)
                {    
                charPosition = charPosition + 26;
                }
                else;
                {
                Console.Write(alphabet[charPosition]);
                }
            };

输入数据如下: YMJNS HWJIN GQJQJ LFHDT KYMJR FYMJR FYNHF QLJSN ZXLJT WLJGT TQJBN QQGJJ CUQTW JINSF KWJJU ZGQNH YFQPN SMNXM TRJHN YDTKQ NSHTQ STSYM JGNHJ SYJSF WDTKM NXGNW YMXYT UGTTQ JBFXG TWSTS YMJXJ HTSIT KSTAJ RGJWJ NLMYJ JSKNK YJJSN SYTRT IJXYK FRNQD HNWHZ RXYFS HJXYM JXTST KFXMT JRFPJ WXYTU QFWLJ QDXJQ KYFZL MYMJB JSYTS YTGJH TRJTS JTKYM JBTWQ 我是SJXYR FYMJR FYNHN FSXBM TXJBT WPSTB KTWRX YMJGF XNXTK HTRUZ YJWXH NJSHJ FSIJQ JHYWT SNHHN WHZNY WDXYT UMJQF NIYMJ KTZSI FYNTS XTKYM JINLN YFQJW FFSIN XBNIJ QDWJH TLSNX JIFXY MJKTW JKFYM JWTKY MJINL NYFQF LJXYT UGTTQ JFSFQ LJGWF NXSTB FKZSI FRJSY FQFXU JHYTK RTIJW SRFYM JRFYN HXFSI TAJWY MJQFX YHJSY ZWDBF XZXJI YTKTW RYMJY MJTWJ YNHFQ KTZSI FYNTS TKRTI JWSHT RUZYJ WXHNJ SHJJS 我

我的输出如下: http://puu.sh/layx0/27e50b70a9.png

1 个答案:

答案 0 :(得分:1)

如果文件中的文本中包含不匹配的数据,则Array.IndexOf将返回-1。然后通过向其添加26进行调整时输出为“U”。

保护不良数据:

LinearAniamtion