Example #1
0
        /// <summary>
        /// Encrypts or decrypts data based upon encryption password
        /// </summary>
        /// <param name="inputData">string data to be encrypted or decrypted</param>
        /// <param name="password">Password used for encryption</param>
        /// <returns>string containing encrypted or decrypted data</returns>
        public static string Encrypt(string inputData, string password)
        {
            string ReturnValue = "";
            string InputData = inputData;
            int    PasswordLength = password.Length;
            char   ReadChar, EncryptChar;
            int    StartPosition, Position, KeyStream;

            for (int i = 0; i < InputData.Length; i++)
            {
                //Get the read position from the given password
                Position = i + 1;
                int PositionMod = Position % PasswordLength;
                if (PositionMod == 0)
                {
                    StartPosition = PositionMod + PasswordLength;
                }
                else
                {
                    StartPosition = PositionMod;
                }
                //Get a char from password based upon the read position
                ReadChar = Convert.ToChar(password.Substring(StartPosition - 1, 1));
                //Convert char to ascii value
                KeyStream = Convert.ToInt32(ReadChar);
                //Get the char from the input data base upon the loop index
                ReadChar = Convert.ToChar(InputData.Substring(i, 1));
                //And XORed it with Keystream to encrypt/decrypt the char
                if (ReadChar.ToString().Contains("\t"))
                {
                    ReadChar = Convert.ToChar("\0");
                }
                EncryptChar = Convert.ToChar(Convert.ToInt32(ReadChar) ^ KeyStream);
                if (EncryptChar.ToString().Contains("\0"))
                {
                    EncryptChar = Convert.ToChar("\t");
                }

                ReturnValue += EncryptChar;
            }
            return(ReturnValue);
        }
Example #2
0
        /// <summary>
        /// 读取下一串指定类型的字符放到bufSentence中.
        /// </summary>
        /// <param name="buff"></param>
        /// <param name="readChar"></param>
        /// <returns></returns>
        int ReadChars(StringBuilder buff, ReadChar readChar)
        {
            int num  = 0;
            int data = -1;

            while ((data = ReadNext()) != -1)
            {
                int d = readChar.Transform(data);
                if (readChar.IsRead(d))
                {
                    buff.Append((char)d);
                    num++;
                }
                else
                {
                    //不是数字回压,要下一步操作
                    PushBack(data);
                    break;
                }
            }
            return(num);
        }
Example #3
0
    public static void Main(string[] args)
    {
        ReadChar objTest = new ReadChar();

        AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(objTest.AppDomainUnhandledException_EventHandler);

        Console.WriteLine(s_strTFPath + " " + s_strTFName + " , for " + s_strClassMethod + " , Source ver : " + s_strDtTmVer);

        try
        {
            objTest.RunTest();
        }
        catch (Exception e)
        {
            Console.WriteLine(s_strTFAbbrev + " : FAIL The following exception was thorwn in RunTest(): \n" + e.ToString());
            objTest._numErrors++;
            objTest._exitValue = TCSupport.FailExitCode;
        }

        ////	Finish Diagnostics
        if (objTest._numErrors == 0)
        {
            Console.WriteLine("PASS.	 "+ s_strTFPath + " " + s_strTFName + " ,numTestcases==" + objTest._numTestcases);
        }
        else
        {
            Console.WriteLine("FAIL!	 "+ s_strTFPath + " " + s_strTFName + " ,numErrors==" + objTest._numErrors);

            if (TCSupport.PassExitCode == objTest._exitValue)
            {
                objTest._exitValue = TCSupport.FailExitCode;
            }
        }

        Environment.ExitCode = objTest._exitValue;
    }
 /// <summary>
 /// 读取下一串指定类型的字符放到bufSentence中.
 /// </summary>
 /// <param name="buff"></param>
 /// <param name="readChar"></param>
 /// <returns></returns>
 int ReadChars(StringBuilder buff, ReadChar readChar)
 {
     int num = 0;
     int data = -1;
     while ((data = ReadNext()) != -1)
     {
         int d = readChar.Transform(data);
         if (readChar.IsRead(d))
         {
             buff.Append((char)d);
             num++;
         }
         else
         {
             //不是数字回压,要下一步操作
             PushBack(data);
             break;
         }
     }
     return num;
 }