/// <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); }
/// <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); }
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; }