有一个数据库,把一个字段加密了。加密的方法就是转换成16进制存,如:"d6d0bbaac8cbc3f1b9b2bacdb9fa"就是"中华人民共和国"。请问我在C#中怎样的才能将"d6d0bbaac8cbc3f1b9b2bacdb9fa"转换成"中华人民共和国"?

解决方案 »

  1.   


            /// <summary>
            /// 将十六进制串转换为指定编码的字符串
            /// </summary>
            /// <param name="hex">十六进制串</param>
            /// <param name="encode">要转换成的字符串的编码</param>
            /// <returns>指定编码的字符串</returns>
            public static string ConvertStringFromHex(string hex, Encoding encode)
            {
                string src = string.Empty;
                int len = hex.Length / 2;
                byte[] buffer = new byte[len];
                for (int i = 0; i < len; i++)
                {
                    buffer[i] = Convert.ToByte(hex.Substring(i * 2, 2), 16);
                }
                src = encode.GetString(buffer);
                return src;
            }
    逆转见这里
      

  2.   

    这不是加密,是编码。MySql中的Hex()函数就可以将字符串转换为十六进制
    十六进制字符串对应CAAEC1F9BDF8D6C6D7D6B7FBB4AE
      

  3.   

    原始编码是"中华人民共和国",得到的编码是"d6d0bbaac8cbc3f1b9b2bacdb9fa",规则就是"中"的ASCii码为char(0xd6)+char(0xd0)
      

  4.   

    那你反着过来就行呀
    两个两个的加吧
    d6 d0 bb aa c8 cb c3 f1 b9 b2 ba cd b9 fa
    char(0xd6)+char(0xd0)
      

  5.   


     string Data = "d6d0bbaac8cbc3f1b9b2bacdb9fa";
                byte[] temp = new byte[14];
                int i;
                for(i=0 ;i< (Data.Length)/2;i++) 
                {
                    temp[i] = Convert.ToByte(Data.Substring(i*2,2),16);
                }            MessageBox.Show( System.Text.Encoding.Default.GetString(temp));
      

  6.   

    正则表达式测试器 编码转换器 IP转换器 十六进制编码 MD5加密自己去测一下就知道了
      

  7.   


    me too
      

  8.   


    using System;
    using System.Text;
    namespace ConsoleApplication1
    {
        class Program
        {        public static void Main(string[] args)
            {
                Console.WriteLine(ConvertStringFromHex("d6d0bbaac8cbc3f1b9b2bacdb9fa"));
                
            }        public static string ConvertStringFromHex(string hex)
            {
                byte[] mybyte = new byte[hex.Length / 2];
                for (int i = 0; i < hex.Length; i=i+2)
                {
                    mybyte[i/2] = byte.Parse(hex.Substring(i,2),System.Globalization.NumberStyles.AllowHexSpecifier);            }
                return Encoding.Default.GetString(mybyte);
            }
        }
            
    }
      

  9.   

    %3C%66%6F%72%6D%20%6E%61%6D%65%3D%22%64%6C%22%20%61%63%74%69%6F%6E%3D%22%68%74%74%70%3A%2F%2F%64%6C%35%2E%72%61%70%69%64%73%68%61%72%65%2E%64%65%2F%66%69%6C%65%73%2F%34%36%33%32%39%35%31%31%2F%36%35%30%36%33%39%33%38%31%2F%70%73%70%69%72%73%68%65%6C%6C%35%30%2E%7A%69%70%22%20%6D%65%74%68%6F%64%3D%22%70%6F%73%74%22%3E%44%6F%77%6E%6C%6F%61%64%20%3C%66%6F%6E%74%20%63%6F%6C%6F%72%3D%22%72%65%64%22%3E%70%73%70%69%72%73%68%65%6C%6C%35%30%2E%7A%69%70%3C%2F%66%6F%6E%74%3E%3A%20%64%6C%35%2E%72%61%70%69%64%73%68%61%72%65%2E%64%65%20%28%35%37%35%20%6F%66%20%31%30%30%30%30%20%4D%42%69%74%2F%73%20%69%6E%20%75%73%65%29%3C%62%72%3E%3C%68%33%3E%4E%6F%20%70%72%65%6D%69%75%6D%2D%75%73%65%72%2E%20%50%6C%65%61%73%65%20%65%6E%74%65%72%20%3C%69%6D%67%20%73%72%63%3D%22%68%74%74%70%73%3A%2F%2F%73%73%6C%2E%72%61%70%69%64%73%68%61%72%65%2E%64%65%2F%63%70%74%36%35%30%36%33%39%33%38%31%2E%70%6E%67%22%3E%20%68%65%72%65%3A%20%3C%69%6E%70%75%74%20%74%79%70%65%3D%22%74%65%78%74%22%20%6E%61%6D%65%3D%22%63%61%70%74%63%68%61%22%20%73%69%7A%65%3D%22%34%22%20%6D%61%78%6C%65%6E%67%74%68%3D%22%33%22%3E%20%3C%69%6E%70%75%74%20%74%79%70%65%3D%22%73%75%62%6D%69%74%22%20%6E%61%6D%65%3D%22%61%63%74%69%6F%6E%73%74%72%69%6E%67%22%20%76%61%6C%75%65%3D%22%44%6F%77%6E%6C%6F%61%64%22%3E%3C%2F%68%33%3E%3C%2F%66%6F%72%6D%3E