コード例 #1
0
        /// <summary>
        /// 执行HTTP GET请求。
        /// </summary>
        /// <param name="url">请求地址</param>
        /// <param name="parameters">请求参数</param>
        /// <returns>HTTP响应</returns>
        public string DoGet(string url, IDictionary <string, string> parameters)
        {
            if (parameters != null && parameters.Count > 0)
            {
                if (url.Contains("?"))
                {
                    url = url + "&" + BuildQuery(parameters);
                }
                else
                {
                    url = url + "?" + BuildQuery(parameters);
                }
            }

            HttpWebRequest req = GetWebRequest(url, "GET");

            req.ContentType = "application/x-www-form-urlencoded;charset=utf-8";

            HttpWebResponse rsp      = (HttpWebResponse)req.GetResponse();
            Encoding        encoding = ASCIIEncoding.UTF8;

            if (!string.IsNullOrEmpty(rsp.CharacterSet))
            {
                encoding = Encoding.GetEncoding(rsp.CharacterSet);
            }
            else
            {
                if (req.ContentType.ToLower().Contains("gb2312"))
                {
                    encoding = ASCIIEncoding.GetEncoding("gb2312");
                }
            }
            return(GetResponseAsString(rsp, encoding));
        }
コード例 #2
0
        public static string ConvertHexToString(byte[] array, int poz, int len_string, int ASCII_N, int UnicodeNum)
        {
            try
            {
                byte[] temp_hex_string = new byte[len_string];
                Array.Copy(array, poz, temp_hex_string, 0, len_string);

                for (int i = 0; i < temp_hex_string.Length; i++)
                {
                    if (temp_hex_string[i] == 0x00 && i == temp_hex_string.Length - 1)
                    {
                        UnicodeNum = 1;//Unicode = false;
                    }
                    else if (temp_hex_string[i] == 0x00 && i <= temp_hex_string.Length - 1)
                    {
                        UnicodeNum = MainMenu.settings.unicodeSettings;
                        break;
                    }
                }

                string result;
                if (MainMenu.settings.unicodeSettings != 1)
                {
                    result = UnicodeEncoding.UTF8.GetString(temp_hex_string);
                }
                else
                {
                    result = ASCIIEncoding.GetEncoding(ASCII_N).GetString(temp_hex_string);
                }
                return(result);
            }
            catch
            { return("error"); }
        }
コード例 #3
0
        public byte[] MakePocket()
        {
            byte[] bts0, bts1, bts2;

            bts0 = ASCIIEncoding.GetEncoding(1251).GetBytes(Convert.ToString(POCKETTYPE));

            if (length < 10)
            {
                bts1 = ASCIIEncoding.GetEncoding(1251).GetBytes(Convert.ToString("0" + "0" + length));
            }
            else
            {
                if (length < 100)
                {
                    bts1 = ASCIIEncoding.GetEncoding(1251).GetBytes(Convert.ToString("0" + length));
                }
                else
                {
                    bts1 = ASCIIEncoding.GetEncoding(1251).GetBytes(Convert.ToString(length));
                }
            }

            bts2 = ASCIIEncoding.GetEncoding(1251).GetBytes(sender + "::" + message);

            bts0 = bts0.Concat(bts1.Concat(bts2).ToArray()).ToArray();

            return(bts0);
        }
コード例 #4
0
        public void SendString(string text, bool callSetWaitCursor)
        {
            string finalString;

            if (callSetWaitCursor)
            {
                setWaitCursor();
            }

            if (Program.AppSettings.defaultEncoding.Trim() == "")
            {
                Program.AppSettings.defaultEncoding = "ISO8859-1";
                Program.SaveSettings();
            }

            finalString = text;
            try
            {
                if (Program.AppSettings.defaultEncoding != "UTF8")
                {
                    Encoding      enc        = ASCIIEncoding.GetEncoding(Program.AppSettings.defaultEncoding);
                    ASCIIEncoding ascii      = new ASCIIEncoding();
                    byte[]        byteArray  = Encoding.UTF8.GetBytes(text);
                    byte[]        asciiArray = Encoding.Convert(Encoding.UTF8, enc, byteArray);
                    finalString = ascii.GetString(asciiArray);
                }
            }
            catch (Exception) { }


            stdNetworkConnection.SendString(finalString);
            //resetPing();
        }
コード例 #5
0
        //网络工具类EXT------------------------------------------------------------

        /// <summary>
        /// 执行HTTP POST请求。
        /// </summary>
        /// <param name="url">请求地址</param>
        /// <param name="parameters">请求参数</param>
        /// <returns>HTTP响应</returns>
        public string DoPost(string url, IDictionary <string, string> parameters)
        {
            HttpWebRequest req = GetWebRequest(url, "POST");

            req.ContentType = "application/x-www-form-urlencoded;charset=gb2312";

            byte[]           postData  = Encoding.GetEncoding("GB2312").GetBytes(BuildQuery(parameters));
            System.IO.Stream reqStream = req.GetRequestStream();
            reqStream.Write(postData, 0, postData.Length);
            reqStream.Close();

            HttpWebResponse rsp      = (HttpWebResponse)req.GetResponse();
            Encoding        encoding = ASCIIEncoding.UTF8;

            if (!string.IsNullOrEmpty(rsp.CharacterSet))
            {
                encoding = Encoding.GetEncoding(rsp.CharacterSet);
            }
            else
            {
                if (req.ContentType.ToLower().Contains("gb2312"))
                {
                    encoding = ASCIIEncoding.GetEncoding("gb2312");
                }
            }
            return(GetResponseAsString(rsp, encoding));
        }
コード例 #6
0
        private void RecvDataThread()
        {
            int mLength = 0;

            byte[] mBuffer = new byte[8192];
            try {
                while (this.ClientSocket.Connected)
                {
                    mLength = this.ClientSocket.Receive(mBuffer);
                    if (mLength > 0)
                    {
                        byte[] _packetBuffer = new byte[mLength];
                        Array.Copy(mBuffer, _packetBuffer, mLength);

                        try {
                            string[] sPackets = ASCIIEncoding.GetEncoding("Windows-1250").GetString(_packetBuffer).Split(new char[] { '\n' }, StringSplitOptions.RemoveEmptyEntries);
                            foreach (string mPacket in sPackets)
                            {
                                if (mPacket.Length > 10)
                                {
                                    byte[] mPacketBuffer = ASCIIEncoding.GetEncoding("Windows-1250").GetBytes(mPacket);
                                    this.OnReceiveData(mPacketBuffer);
                                }
                            }
                        } catch { }
                    }
                    else
                    {
                        this.Disconnect();
                    }
                }
            } catch { this.Disconnect(); }

            this.Disconnect();
        }
コード例 #7
0
        internal byte[] ExportResults(bool finalResults)
        {
            StringBuilder toReturn = new StringBuilder();

            Structs.ResultWeaponsClass[] wclasses = myInterface.ResultsGetWClasses();
            foreach (Structs.ResultWeaponsClass wclass in wclasses)
            {
                foreach (Structs.ShootersClass uclass in myInterface.ResultsGetUClasses(wclass))
                {
                    ResultsReturn[] results =
                        myInterface.resultClass.GetResults(
                            wclass,
                            uclass,
                            myInterface.CompetitionCurrent);

                    if (results.Length > 0)
                    {
                        toReturn.Append("\t" + wclass.ToString() + "\t" + uclass.ToString() + "\r\n");
                        toReturn.Append(RenderResults(results));
                        toReturn.Append("\r\n\r\n");
                    }
                }
            }
            Encoding enc = ASCIIEncoding.GetEncoding(1252);

            return(enc.GetBytes(toReturn.ToString()));
        }
コード例 #8
0
ファイル: Program.cs プロジェクト: trgint/UniToAnsi
 private static int Process(string inputFile, string outputFile)
 {
     //Console.WriteLine("inputFile:'{0}'\nOutputFile:'{1}'", inputFile, outputFile);
     try
     {
         //write to sw
         using (var sw = File.CreateText(outputFile))
         {
             //read from sr
             using (var sr = File.OpenText(inputFile))
             {
                 var encoder = ASCIIEncoding.GetEncoding(targetEncoding, new EncoderReplacementFallback(fallbackString), new DecoderExceptionFallback());
                 while (!sr.EndOfStream)
                 {
                     //convert UTF-8 to us-ascii, replacing characters
                     var b = encoder.GetBytes(sr.ReadLine());
                     sw.WriteLine(encoder.GetString(b));
                 }
                 Console.WriteLine("file processed. Press any key to exit.");
                 Console.ReadKey();
                 //completed successfully
                 return(0);
             }
         }
     }
     catch (Exception ex)
     {
         Console.WriteLine("Error while processing:\n " + ex.Message);
         return(1);
     }
 }
コード例 #9
0
 /// <summary>
 /// DES解密
 /// </summary>
 /// <param name="code">加密字符串</param>
 /// <param name="Key">密匙</param>
 /// <returns>被加密字符串</returns>
 public static byte[] DesDecrypt(byte[] code, string Key)
 {
     try
     {
         DESCryptoServiceProvider des = new DESCryptoServiceProvider();
         byte[] inputByteArray        = code;
         if (CharSet.Trim() == "")
         {
             des.Key = ASCIIEncoding.Default.GetBytes(Key);
             des.IV  = ASCIIEncoding.Default.GetBytes(Key);
         }
         else
         {
             des.Key = ASCIIEncoding.GetEncoding(CharSet).GetBytes(Key);
             des.IV  = ASCIIEncoding.GetEncoding(CharSet).GetBytes(Key);
         }
         MemoryStream ms = new MemoryStream();
         CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Read);
         cs.Read(inputByteArray, 0, inputByteArray.Length);
         cs.FlushFinalBlock();
         byte[] res = ms.ToArray();
         cs.Close();
         des.Clear();
         ms.Close();
         return(res);
     }
     catch (Exception ex)
     {
         ErrMsg = ex.Message;
         return(null);
     }
 }
コード例 #10
0
 /// <summary>
 /// TripeDes解密
 /// </summary>
 /// <param name="code">加密字符串</param>
 /// <param name="Key">密匙</param>
 /// <param name="mode">块密码模式</param>
 /// <param name="type">填充</param>
 /// <returns>被加密字符串</returns>
 public static byte[] TripeDesDecrypt(byte[] code, string Key, CipherMode mode = CipherMode.CBC, PaddingMode type = PaddingMode.PKCS7)
 {
     try
     {
         TripleDESCryptoServiceProvider des = new TripleDESCryptoServiceProvider();
         byte[] inputByteArray = code;
         if (CharSet.Trim() == "")
         {
             des.Key = ASCIIEncoding.Default.GetBytes(Key);
             des.IV  = ASCIIEncoding.Default.GetBytes(Key);
         }
         else
         {
             des.Key = ASCIIEncoding.GetEncoding(CharSet).GetBytes(Key);
             des.IV  = ASCIIEncoding.GetEncoding(CharSet).GetBytes(Key);
         }
         des.Mode    = mode;
         des.Padding = type;
         MemoryStream ms = new MemoryStream();
         CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write);
         cs.Write(inputByteArray, 0, inputByteArray.Length);
         cs.FlushFinalBlock();
         byte[] res = ms.ToArray();
         cs.Close();
         des.Clear();
         ms.Close();
         return(res);
     }
     catch (Exception ex)
     {
         ErrMsg = ex.Message;
         return(null);
     }
 }
コード例 #11
0
ファイル: p_Identificator.cs プロジェクト: cgp2/ClientChat
        public p_Identificator(string n, string p)
        {
            name     = n;
            password = p;

            length = (ASCIIEncoding.GetEncoding(1251).GetBytes(name + "/" + password)).Length;
        }
コード例 #12
0
        public List <string> names = new List <string>(); // n*16 байт

        public p_UserList(List <ClClass> input)
        {
            foreach (ClClass j in input)
            {
                names.Add(j.name);
                length += (ASCIIEncoding.GetEncoding(1251).GetBytes(j.name)).Length + 5;
            }
        }
コード例 #13
0
 public string ReadString(int addr, int len)
 {
     byte[] data = ReadData(addr, len);
     if (data != null && data.Length == len)
     {
         return(ASCIIEncoding.GetEncoding("GB2312").GetString(data));
     }
     throw new InvalidOperationException("访问加密狗错误,请插入正确的加密狗重试!");
 }
コード例 #14
0
ファイル: Program.cs プロジェクト: PetX1996/MapFixer
        static void ModifyMainFile(string mainFilePath, string filesParentDir)
        {
            string        mainContent           = File.ReadAllText(mainFilePath);
            StringBuilder mainSb                = new StringBuilder(mainContent);
            string        mainSbWithoutComments = mainContent;

            // load settings from XML
            XmlDocument doc = new XmlDocument();

            doc.LoadXml(GetXMLSettings(mainContent));

            string commentRegex       = ((XmlElement)doc.SelectSingleNode("MapFixer/Comments")).GetAttribute("regex");
            string switchRegex        = ((XmlElement)doc.SelectSingleNode("MapFixer/Switch")).GetAttribute("regex");
            int    switchContentGroup = Int32.Parse(((XmlElement)doc.SelectSingleNode("MapFixer/Switch")).GetAttribute("contentGroup"));
            string caseFormat         = ((XmlElement)doc.SelectSingleNode("MapFixer/Switch/Case")).GetAttribute("strFormat");
            string defaultFormat      = ((XmlElement)doc.SelectSingleNode("MapFixer/Switch/Default")).GetAttribute("strFormat");

            // replace comments with spaces
            MatchCollection comments = Regex.Matches(mainContent, commentRegex, RegexOptions.CultureInvariant);

            if (comments.Count > 0)
            {
                StringBuilder sb = new StringBuilder(mainSbWithoutComments);
                foreach (Match m in comments)
                {
                    sb.Remove(m.Index, m.Length);
                    sb.Insert(m.Index, new String(' ', m.Length));
                }
                mainSbWithoutComments = sb.ToString();
            }

            // remove switch content
            Match switchM = Regex.Match(mainSbWithoutComments, switchRegex, RegexOptions.CultureInvariant);

            mainSb.Remove(switchM.Groups[switchContentGroup].Index, switchM.Groups[switchContentGroup].Length);
            int mainSbInsertI = switchM.Groups[switchContentGroup].Index;

            // insert new switch content
            string[] files = Directory.GetFiles(filesParentDir, "*.gsc", SearchOption.TopDirectoryOnly);
            foreach (string file in files)
            {
                if (file == mainFilePath)
                {
                    continue;
                }

                string fileName   = Path.GetFileNameWithoutExtension(file);
                string insertCase = String.Format(caseFormat.Replace("\\t", "\t").Replace("\\r", "\r").Replace("\\n", "\n").Replace("\\\\", "\\"), fileName);
                mainSb.Insert(mainSbInsertI, insertCase);
                mainSbInsertI += insertCase.Length;
            }

            mainSb.Insert(mainSbInsertI, defaultFormat.Replace("\\t", "\t").Replace("\\r", "\r").Replace("\\n", "\n").Replace("\\\\", "\\"));

            File.WriteAllText(mainFilePath, mainSb.ToString(), ASCIIEncoding.GetEncoding(1250));
        }
コード例 #15
0
        static void Main(string[] args)
        {
            if (args.Length == 4)
            {
                string            hostname = args[0];
                int               port     = int.Parse(args[1]);
                HTTPRequestMethod command  = (HTTPRequestMethod)Enum.Parse(typeof(HTTPRequestMethod), args[2].ToUpper());
                string            filename = args[3];

                IPAddress[] ipv4Addresses = Array.FindAll(Dns.GetHostEntry(hostname).AddressList, a => a.AddressFamily == AddressFamily.InterNetwork);

                filename = filename.Replace('\\', '/');

                using (Socket client = new Socket(SocketType.Stream, ProtocolType.Tcp))
                {
                    HTTPRequest req = new HTTPRequest();
                    req.Header.ProtocolVersion  = "HTTP/1.1";
                    req.Header.ResourceLocation = filename;

                    bool isValid = false;
                    if (command == HTTPRequestMethod.GET)
                    {
                        req.Header.Method = HTTPRequestMethod.GET;
                        isValid           = true;
                    }
                    else if (command == HTTPRequestMethod.PUT)
                    {
                        req.Header.Method = HTTPRequestMethod.PUT;

                        if (File.Exists(filename) == true)
                        {
                            using (FileStream fs = new FileStream(filename, FileMode.Open))
                            {
                                using (BinaryReader bw = new BinaryReader(fs))
                                {
                                    req.RawBody = bw.ReadBytes((int)fs.Length);
                                }
                            }
                            isValid = true;
                        }
                    }

                    if (isValid == true)
                    {
                        client.Connect(new IPEndPoint(ipv4Addresses[0], port));
                        client.Send(req.GetResponseStream());
                        Console.WriteLine(ASCIIEncoding.GetEncoding(0).GetString(ReadResponse(client)));
                    }
                }
            }

            else
            {
                Console.WriteLine("YetAnotherWebServer hostname port command filename");
            }
        }
コード例 #16
0
        /// <summary>
        /// Performs the inverse operation to FromStringNameIntoByteRepresentation
        /// </summary>
        /// <param name="name">String representation of the ASCII hex bytes</param>
        /// <exception cref="NullReferenceException">If name is null</exception>
        /// <returns>Actual string</returns>
        public static string FromByteRepresentationIntoStringName(String name)
        {
            Encoding encoder = ASCIIEncoding.GetEncoding(OEM_UNITED_STATES_ENCODING);

            return(encoder.GetString(name.ToCharArray()
                                     .Chunk(2)
                                     .Select(s => new string(s.ToArray()))
                                     .Select(t => byte.Parse(t, NumberStyles.HexNumber))
                                     .ToArray()));
        }
コード例 #17
0
 public static void WriteAnsiString(Stream stream, string value, int fieldLength)
 {
     byte[] bytes = ASCIIEncoding.GetEncoding(28591).GetBytes(value);
     stream.Write(bytes, 0, Math.Min(bytes.Length, fieldLength));
     if (bytes.Length < fieldLength)
     {
         byte[] zeroFill = new byte[fieldLength - bytes.Length];
         stream.Write(zeroFill, 0, zeroFill.Length);
     }
 }
コード例 #18
0
        public WebMail()
        {
            Server = HttpContext.Current.Server;
            string ec = Request.QueryString["encode"];

            if (!string.IsNullOrEmpty(ec))
            {
                Request.ContentEncoding = ASCIIEncoding.GetEncoding(ec);
            }
        }
コード例 #19
0
            public byte[] getRawValue()
            {
                byte[] convertedString = ASCIIEncoding.GetEncoding("shift-jis").GetBytes(val + '\0');
                int    stringLength    = (convertedString.Length + 3) / 4;

                byte[] returnValue = new byte[stringLength * 4];
                Array.Copy(BitConverter.GetBytes(stringLength), returnValue, 4);
                Array.Copy(convertedString, 0, returnValue, 4, convertedString.Length);
                return(returnValue);
            }
コード例 #20
0
        /// <summary>
        /// Converts a string, eg ROBOCOP, into binary representation: 524F424F434F50
        /// This is used by TC-5000 messaging and block tags
        /// </summary>
        /// <param name="name">Normal text string</param>
        /// <exception cref="NullReferenceException">If name is null</exception>
        /// <returns>String with each character converted in to its ASCII hex representation</returns>
        public static string FromStringNameIntoByteRepresentation(String name)
        {
            Encoding      encoder = ASCIIEncoding.GetEncoding(OEM_UNITED_STATES_ENCODING);
            StringBuilder buffer  = new StringBuilder();

            foreach (byte item in encoder.GetBytes(name.ToCharArray()))
            {
                buffer.Append(((int)item).ToString("X2", CultureInfo.InvariantCulture.NumberFormat));
            }
            return(buffer.ToString());
        }
コード例 #21
0
 public static string ToASCIIString(byte[] targetBytes, int offset, int length)
 {
     try
     {
         string retStr = ASCIIEncoding.GetEncoding(28591).GetString(targetBytes, offset, length);
         return(retStr);
     }
     catch (Exception)
     {
         return(string.Empty);
     }
 }
コード例 #22
0
ファイル: p_UserList.cs プロジェクト: cgp2/ClientChat
        public p_UserList(byte[] input)
        {
            length = int.Parse(ASCIIEncoding.GetEncoding(1251).GetString(input, 1, 4));
            string s = ASCIIEncoding.GetEncoding(1251).GetString(input, 5, length);
            int    n = s.Count(c => c == '/');

            for (var i = 0; i < n; i++)
            {
                string name = s.Substring(0, s.IndexOf("/"));
                s = s.Remove(0, s.IndexOf("/") + 1);
                names.Add(name);
            }
        }
コード例 #23
0
ファイル: p_Identificator.cs プロジェクト: cgp2/ClientChat
        public string password;           //max 10 символов = 10 байт. MAX развем пакета = 28


        public p_Identificator(byte[] input)
        {
            if (int.Parse(ASCIIEncoding.GetEncoding(1251).GetString(input, 0, 1)) == POCKETTYPE)
            {
                length = int.Parse(ASCIIEncoding.GetEncoding(1251).GetString(input, 1, 3));
                string s = ASCIIEncoding.GetEncoding(1251).GetString(input, 4, length);
                name     = s.Substring(0, s.IndexOf("/") - 1);
                password = s.Substring(s.IndexOf("/"));
            }
            else
            {
                Console.WriteLine("Неверный формат пакета");
            }
        }
コード例 #24
0
        public byte[] GetOutput()
        {
            StringBuilder sb = new StringBuilder();

            sb.Append(Environment.TickCount + " ");
            sb.Append(this.operationCode + " ");
            foreach (string sBlock in blocks.ToArray())
            {
                sb.Append(sBlock + " ");
            }
            sb.Append("\n\0");

            return(ASCIIEncoding.GetEncoding("Windows-1250").GetBytes(sb.ToString()));
        }
コード例 #25
0
        public string message;            // Max 150 символов = 150 байт. MAX Размер пакета 120 байта


        public p_Message(byte[] input)
        {
            if (int.Parse(ASCIIEncoding.GetEncoding(1251).GetString(input, 0, 1)) == POCKETTYPE)
            {
                length = int.Parse(ASCIIEncoding.GetEncoding(1251).GetString(input, 1, 3));
                string s = ASCIIEncoding.GetEncoding(1251).GetString(input, 4, length);
                receiver = s.Remove(s.LastIndexOf("::"));
                message  = s.Substring(s.IndexOf("::") + 2);
            }
            else
            {
                Console.WriteLine("Неверный тип пакета");
            }
        }
コード例 #26
0
        public static string ToStringValue(this byte[] value)
        {
            if (value == null)
            {
                return(string.Empty);
            }

            var encoder = ASCIIEncoding.GetEncoding(0,
                                                    new EncoderReplacementFallback("."),
                                                    new DecoderReplacementFallback("."));

            var decoded = encoder.GetString(value);

            return(Regex.Replace(decoded, "\\W", "."));
        }
コード例 #27
0
        internal byte[] ExportResults(Structs.ResultWeaponsClass wclass,
                                      Structs.ShootersClass uclass, bool finalResults)
        {
            ResultsReturn[] results =
                myInterface.resultClass.GetResults(
                    wclass,
                    uclass,
                    myInterface.CompetitionCurrent);

            string resultString = RenderResults(results);

            Encoding enc = ASCIIEncoding.GetEncoding(1252);

            return(enc.GetBytes(resultString));
        }
コード例 #28
0
        public void replaceFile(int index, Stream toImport)
        {
            BinaryReader beta = new BinaryReader(toImport);

            toImport.Seek(0, SeekOrigin.Begin);
            afsList[index].rawContents = beta.ReadBytes((int)toImport.Length);
            if (ASCIIEncoding.GetEncoding("ASCII").GetString(afsList[index].rawContents, 0, 3) == "AFS")
            {
                afsList[index].fileContents = new AfsLoader(new MemoryStream(afsList[index].rawContents));
            }
            else if (ASCIIEncoding.GetEncoding("ASCII").GetString(afsList[index].rawContents, 0, 4) == "NMLL")
            {
                afsList[index].fileContents = new NblLoader(new MemoryStream(afsList[index].rawContents));
            }
        }
コード例 #29
0
        static public bool RdMessage(byte boardAddr, out String str)
        {
            UInt16        addr;
            StringBuilder sb = new StringBuilder();

            byte[]   rxBuf = new byte[512];
            UInt16   tempVal;
            bool     retVal = true;
            Encoding coding = ASCIIEncoding.GetEncoding("GB2312");

            str = null;
            int i = 0;

            for (i = 0; i < 255; i++)
            {
                addr = (UInt16)(0x100 + i);
                if (ReadDebugReg(boardAddr, addr, out tempVal))
                {
                    if (tempVal != 0xffff && tempVal != 0)
                    {
                        rxBuf[i * 2]     = (byte)(tempVal & 0xff);
                        rxBuf[i * 2 + 1] = (byte)(tempVal >> 8);
                    }
                    else
                    {
                        break;
                    }
                }
                else
                {
                    retVal = true;
                }
            }
            #region 移除字符串中间“\0”
            for (int k = 0; k < rxBuf.Length - 1; k++)
            {
                if (rxBuf[k] == 0x00)
                {
                    for (int j = k; j < rxBuf.Length - 1; j++)
                    {
                        rxBuf[j] = rxBuf[j + 1];
                    }
                }
            }
            #endregion
            str = coding.GetString(rxBuf, 0, i * 2);
            return(retVal);
        }
コード例 #30
0
 /// <summary>
 /// TripeDes解密
 /// </summary>
 /// <param name="code">加密字符串</param>
 /// <param name="Key">密匙</param>
 /// <param name="mode">块密码模式</param>
 /// <param name="type">填充</param>
 /// <returns>被加密字符串</returns>
 public static string TripeDesDecrypt(string code, string Key, CipherMode mode = CipherMode.CBC, PaddingMode type = PaddingMode.PKCS7)
 {
     try
     {
         TripleDESCryptoServiceProvider des = new TripleDESCryptoServiceProvider();
         byte[] inputByteArray = new byte[code.Length / 2];
         for (int x = 0; x < code.Length / 2; x++)
         {
             int i = (Convert.ToInt32(code.Substring(x * 2, 2), 16));
             inputByteArray[x] = (byte)i;
         }
         if (CharSet.Trim() == "")
         {
             des.Key = ASCIIEncoding.Default.GetBytes(Key);
             des.IV  = ASCIIEncoding.Default.GetBytes(Key);
         }
         else
         {
             des.Key = ASCIIEncoding.GetEncoding(CharSet).GetBytes(Key);
             des.IV  = ASCIIEncoding.GetEncoding(CharSet).GetBytes(Key);
         }
         des.Mode    = mode;
         des.Padding = type;
         MemoryStream ms = new MemoryStream();
         CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write);
         cs.Write(inputByteArray, 0, inputByteArray.Length);
         cs.FlushFinalBlock();
         StringBuilder ret = new StringBuilder();
         cs.Close();
         des.Clear();
         ms.Close();
         string res = "";
         if (CharSet.Trim() == "")
         {
             res = System.Text.Encoding.Default.GetString(ms.ToArray());
         }
         else
         {
             res = System.Text.Encoding.GetEncoding(CharSet).GetString(ms.ToArray());
         }
         return(res);
     }
     catch (Exception ex)
     {
         ErrMsg = ex.Message;
         return("");
     }
 }