解决方案 »

  1.   

    Encoding.Unicode.GetString(Convert.FromBase64String(s));
      

  2.   

    搞了半天,没想到Unicode。gb2312,uft-8都试了,都不行。谢谢,
      

  3.   

    cWF6MzIx才是qaz321的Base64编码结果,HEX (16进制) 71 61 7A 33 32 31
    cQBhAHoAMwAyADEA的解码结果的HEX (16进制)71 3F 61 3F 7A 3F 33 3F 32 3F 31 3F,其中3F网页显示乱码。你把cWF6MzIx和cQBhAHoAMwAyADEA复制到http://www.base64decode.org/可以看到不一样的结果
      

  4.   

    不好意思,刚才的0x3F应该是0x00,下面是测试代码:            //0x71=q;0x00=NUL;0x61=a;0x00=NUL;0x7A=z;0x00=NUL;0x33=3;0x00=NUL;0x32=2;0x00=NUL;0x31=1;0x00=NUL
                byte[] data1 = { 0x71, 0x00, 0x61, 0x00, 0x7A, 0x00, 0x33, 0x00, 0x32, 0x00, 0x31, 0x00 };
                //0x71=q;0x61=a;0x7A=z;0x33=3;0x32=2;0x31=1;
                byte[] data2 = { 0x71, 0x61, 0x7A, 0x33, 0x32, 0x31 };
                Console.WriteLine(string.Format("Base64 Encoded Data1: {0}", Convert.ToBase64String(data1)));
                Console.WriteLine(string.Format("Base64 Encoded Data2: {0}", Convert.ToBase64String(data2)));
      

  5.   

    解码成16进制的代码:            string base64Encoded1 = "cQBhAHoAMwAyADEA";
                string base64Encoded2 = "cWF6MzIx";
                string base64Decoded="qaz321";            string stringToConvert = base64(base64Encoded1, false);
                byte[] convertedByte = Encoding.Unicode.GetBytes(stringToConvert);
                string hex = BitConverter.ToString(convertedByte);
                Console.WriteLine(hex);            stringToConvert = base64(base64Encoded2, false);
                convertedByte = Encoding.Unicode.GetBytes(stringToConvert);
                hex = BitConverter.ToString(convertedByte);
                Console.WriteLine(hex);
      

  6.   

    澄清下,base64应该叫做编码解码,而不是加密解密。
      

  7.   

    楼主解决了? 我现在碰到一个问题 我这边是php  和 c#对接接口 。他们发过来的base64编码的 我这边用phpbase64 解码不行呢。改怎么解吗啊