base64解码问题???

jazzbond 2013-02-01 10:18:39
下面这一段

u7bTrcq508MgR29vZ2xlINXKu6eho9KqvKS77sT6tcTVyrunsqLR6dakxPq1xLXn19PTyrz+tdjW\r\nt6Osx+u147v30tTPwsG0vdOjug0KDQpodHRwczovL2FjY291bnRzLmdvb2dsZS5jb20vVkU/c2Vy\r\ndmljZT1jbCZjPUNOV2k3UERfNHREVzVRRVEwNFg5cTllQmdwTmYmaGw9emhfQ04NCg0KKioq16LS\r\n4ioqKsfrtPLTobTL0rPB9Nf3vMfCvKGjyOe5+8T6yqfIpcHL1cq7p7fDzsrIqM/eo6jA/cjno6zI\r\n57n7xPrN/LzHwcvTwyANCrunw/u78sPcwuujqaOsvs3Q6NKq08O1vdHp1qTBtL3ToaMNCg0KyOe5\r\n+8T6tO3K1cHLtMvTyrz+o6y/ycTcysfG5Mv708O7p86qwe3Su7j2tefX09PKvP612Na3tLS9qNXK\r\nu6fKsc7zyuTI68HLxPq1xCANCrXn19PTyrz+tdjWt6GjyOe5+8T6sru147v30enWpMG0vdOjrM+1\r\nzbO+zbK7u+G8pLvuuMPVyrunoaMNCg0KyOe5+8T6w7vT0Mfrx/O0y7Xn19PTyrz+o6y1q772tqjK\r\nudPDu/LJvrP9tMvVyruno6y+zdDo0qrPyLfDzsrS1M/CzfjWt8rkyOvE+iANCrXEtefX09PKvP61\r\n2Na30tTW2NbD1cq7p8Pcwuujug0KaHR0cHM6Ly9hY2NvdW50cy5nb29nbGUuY29tL1JlY292ZXJB\r\nY2NvdW50oaMNCg0KyOe5+7Xju/fS1MnPwbS908O709C3tNOmo6zH672ruMPN+Na3uLTWxrKi1bPM\r\n+bW90MK1xOSvwMDG97Swv9rW0KGjDQoNCrTL1sINCkdvb2dsZSDVyrun0KHX6b60yc8NCg0Kx+vX\r\notLio6y4w7Xn19PTyrz+tdjWt7K7xNy908rcu9i4tNPKvP6ho9KqveK+9s7KzOK7
8sHLveLE+tXK\r\nu6e1xM/qx+mjrMfrt8POyiANCs7Sw8e1xLDv1vrW0


放到网上的一些解码工具他能够解出来。。。
但是
Convert.FromBase64String(base64Encoded);
老是报无效的字符串长度,我知道可能是这段编码中有 \r\n 但是把他们替换成“没有”也不行,那些解码工具他们怎么做到的~~~
...全文
1101 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
LJ_liujue 2014-07-22
  • 打赏
  • 举报
回复
格式不符合base64的规范,网上的都有给你补充格式的
90一叶扁舟 2014-04-10
  • 打赏
  • 举报
回复
是因为76个字符后加了回车换行
jazzbond 2013-02-01
  • 打赏
  • 举报
回复
结贴送分~~~~
jazzbond 2013-02-01
  • 打赏
  • 举报
回复
17楼的正解啊~~~
jazzbond 2013-02-01
  • 打赏
  • 举报
回复
啊??? ~~~ 我在试试~~
Hauk 2013-02-01
  • 打赏
  • 举报
回复
用我发的第二段代码。 把每段base64转换byte[] ,然后把数组加起来再转string
Hauk 2013-02-01
  • 打赏
  • 举报
回复
引用 14 楼 jazzbond 的回复:
真郁闷那些解码工具是怎么解的 ~~~~ 解的就很完美啊!~~~

网上的解码工具我刚去看了下啊,我这个结果比它们的完美多了啊。。。
  • 打赏
  • 举报
回复
这个跟你之前Base64编码的格式有关系,你是用的UTF-8还是GBK还是其他的。我把第一个\r\n之前的数据拿出来解码了,发现最后是少一位的,这一位很可能就被替换成\r\n了,我解析出来的结果是“欢迎使用 Google 帐户。要激活您的帐户并验证您的电子邮件地?”后面的“址”丢了。你可以从这方面去排查问题
jazzbond 2013-02-01
  • 打赏
  • 举报
回复
真郁闷那些解码工具是怎么解的 ~~~~ 解的就很完美啊!~~~
jazzbond 2013-02-01
  • 打赏
  • 举报
回复
每段截取后解码会乱码~~
jazzbond 2013-02-01
  • 打赏
  • 举报
回复
我试试~~~~~~~~
Hauk 2013-02-01
  • 打赏
  • 举报
回复
            string base64 = "u7bTrcq508MgR29vZ2xlINXKu6eho9KqvKS77sT6tcTVyrunsqLR6dakxPq1xLXn19PTyrz+tdjW\r\nt6Osx+u147v30tTPwsG0vdOjug0KDQpodHRwczovL2FjY291bnRzLmdvb2dsZS5jb20vVkU/c2Vy\r\ndmljZT1jbCZjPUNOV2k3UERfNHREVzVRRVEwNFg5cTllQmdwTmYmaGw9emhfQ04NCg0KKioq16LS\r\n4ioqKsfrtPLTobTL0rPB9Nf3vMfCvKGjyOe5+8T6yqfIpcHL1cq7p7fDzsrIqM/eo6jA/cjno6zI\r\n57n7xPrN/LzHwcvTwyANCrunw/u78sPcwuujqaOsvs3Q6NKq08O1vdHp1qTBtL3ToaMNCg0KyOe5\r\n+8T6tO3K1cHLtMvTyrz+o6y/ycTcysfG5Mv708O7p86qwe3Su7j2tefX09PKvP612Na3tLS9qNXK\r\nu6fKsc7zyuTI68HLxPq1xCANCrXn19PTyrz+tdjWt6GjyOe5+8T6sru147v30enWpMG0vdOjrM+1\r\nzbO+zbK7u+G8pLvuuMPVyrunoaMNCg0KyOe5+8T6w7vT0Mfrx/O0y7Xn19PTyrz+o6y1q772tqjK\r\nudPDu/LJvrP9tMvVyruno6y+zdDo0qrPyLfDzsrS1M/CzfjWt8rkyOvE+iANCrXEtefX09PKvP61\r\n2Na30tTW2NbD1cq7p8Pcwuujug0KaHR0cHM6Ly9hY2NvdW50cy5nb29nbGUuY29tL1JlY292ZXJB\r\nY2NvdW50oaMNCg0KyOe5+7Xju/fS1MnPwbS908O709C3tNOmo6zH672ruMPN+Na3uLTWxrKi1bPM\r\n+bW90MK1xOSvwMDG97Swv9rW0KGjDQoNCrTL1sINCkdvb2dsZSDVyrun0KHX6b60yc8NCg0Kx+vX\r\notLio6y4w7Xn19PTyrz+tdjWt7K7xNy908rcu9i4tNPKvP6ho9KqveK+9s7KzOK78sHLveLE+tXK\r\nu6e1xM/qx+mjrMfrt8POyiANCs7Sw8e1xLDv1vrW0";
            byte[] buffer_s = new byte[0];
            for (int i = 0; i < base64.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries).Length; i++)
            {
                string temp_s = base64.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries)[i];
                if (temp_s.Length < 77)
                {
                    temp_s = temp_s.TrimEnd('0');
                }
                byte[] temp_buffer = Convert.FromBase64String(temp_s);
                buffer_s = buffer_s.Concat(temp_buffer).ToArray();
            }
            Console.WriteLine(Encoding.Default.GetString(buffer_s));
Hauk 2013-02-01
  • 打赏
  • 举报
回复

            string base64 = "u7bTrcq508MgR29vZ2xlINXKu6eho9KqvKS77sT6tcTVyrunsqLR6dakxPq1xLXn19PTyrz+tdjW\r\nt6Osx+u147v30tTPwsG0vdOjug0KDQpodHRwczovL2FjY291bnRzLmdvb2dsZS5jb20vVkU/c2Vy\r\ndmljZT1jbCZjPUNOV2k3UERfNHREVzVRRVEwNFg5cTllQmdwTmYmaGw9emhfQ04NCg0KKioq16LS\r\n4ioqKsfrtPLTobTL0rPB9Nf3vMfCvKGjyOe5+8T6yqfIpcHL1cq7p7fDzsrIqM/eo6jA/cjno6zI\r\n57n7xPrN/LzHwcvTwyANCrunw/u78sPcwuujqaOsvs3Q6NKq08O1vdHp1qTBtL3ToaMNCg0KyOe5\r\n+8T6tO3K1cHLtMvTyrz+o6y/ycTcysfG5Mv708O7p86qwe3Su7j2tefX09PKvP612Na3tLS9qNXK\r\nu6fKsc7zyuTI68HLxPq1xCANCrXn19PTyrz+tdjWt6GjyOe5+8T6sru147v30enWpMG0vdOjrM+1\r\nzbO+zbK7u+G8pLvuuMPVyrunoaMNCg0KyOe5+8T6w7vT0Mfrx/O0y7Xn19PTyrz+o6y1q772tqjK\r\nudPDu/LJvrP9tMvVyruno6y+zdDo0qrPyLfDzsrS1M/CzfjWt8rkyOvE+iANCrXEtefX09PKvP61\r\n2Na30tTW2NbD1cq7p8Pcwuujug0KaHR0cHM6Ly9hY2NvdW50cy5nb29nbGUuY29tL1JlY292ZXJB\r\nY2NvdW50oaMNCg0KyOe5+7Xju/fS1MnPwbS908O709C3tNOmo6zH672ruMPN+Na3uLTWxrKi1bPM\r\n+bW90MK1xOSvwMDG97Swv9rW0KGjDQoNCrTL1sINCkdvb2dsZSDVyrun0KHX6b60yc8NCg0Kx+vX\r\notLio6y4w7Xn19PTyrz+tdjWt7K7xNy908rcu9i4tNPKvP6ho9KqveK+9s7KzOK78sHLveLE+tXK\r\nu6e1xM/qx+mjrMfrt8POyiANCs7Sw8e1xLDv1vrW0";

            for (int i = 0; i < base64.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries).Length; i++)
            {
                string temp_s = base64.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries)[i];
                if (temp_s.Length < 77)
                {
                    temp_s = temp_s.TrimEnd('0');
                }
                byte[] temp_buffer = Convert.FromBase64String(temp_s);
                Console.WriteLine(Encoding.Default.GetString(temp_buffer));
            }
每一段(\r\n)都是一句base64,分开来转换。
jazzbond 2013-02-01
  • 打赏
  • 举报
回复
没人知道吗???
jazzbond 2013-02-01
  • 打赏
  • 举报
回复
晕~~ public static byte[] Decode(string base64Encoded) { try { base64Encoded=base64Encoded.Replace("\r",""); base64Encoded = base64Encoded.Replace("\n", ""); base64Encoded = base64Encoded.Replace("/", ""); return Convert.FromBase64String(base64Encoded); } catch (FormatException e) { DefaultLogger.Log.LogError("Base64: (FormatException) " + e.Message + "\r\nOn string: " + base64Encoded); throw; } } 这样老是不行
bdmh 2013-02-01
  • 打赏
  • 举报
回复
引用 5 楼 jazzbond 的回复:
不行啊~~ 里面的\r\n被我去掉以后~~ 根本就没有 \ 了
我有点想不明白上面那一段放到解密工具上他完全可以解的出来
而C#老是报 无效的字符串长度

我把所有的 \ 包括 / 都去掉了,可以正常读取
jazzbond 2013-02-01
  • 打赏
  • 举报
回复
这是变量拿到的值 u7bTrcq508MgR29vZ2xlINXKu6eho9KqvKS77sT6tcTVyrunsqLR6dakxPq1xLXn19PTyrz+tdjW t6Osx+u147v30tTPwsG0vdOjug0KDQpodHRwczovL2FjY291bnRzLmdvb2dsZS5jb20vVkU/c2Vy dmljZT1jbCZjPUNOV2k3UERfNHREVzVRRVEwNFg5cTllQmdwTmYmaGw9emhfQ04NCg0KKioq16LS 4ioqKsfrtPLTobTL0rPB9Nf3vMfCvKGjyOe5+8T6yqfIpcHL1cq7p7fDzsrIqM/eo6jA/cjno6zI 57n7xPrN/LzHwcvTwyANCrunw/u78sPcwuujqaOsvs3Q6NKq08O1vdHp1qTBtL3ToaMNCg0KyOe5 +8T6tO3K1cHLtMvTyrz+o6y/ycTcysfG5Mv708O7p86qwe3Su7j2tefX09PKvP612Na3tLS9qNXK u6fKsc7zyuTI68HLxPq1xCANCrXn19PTyrz+tdjWt6GjyOe5+8T6sru147v30enWpMG0vdOjrM+1 zbO+zbK7u+G8pLvuuMPVyrunoaMNCg0KyOe5+8T6w7vT0Mfrx/O0y7Xn19PTyrz+o6y1q772tqjK udPDu/LJvrP9tMvVyruno6y+zdDo0qrPyLfDzsrS1M/CzfjWt8rkyOvE+iANCrXEtefX09PKvP61 2Na30tTW2NbD1cq7p8Pcwuujug0KaHR0cHM6Ly9hY2NvdW50cy5nb29nbGUuY29tL1JlY292ZXJB Y2NvdW50oaMNCg0KyOe5+7Xju/fS1MnPwbS908O709C3tNOmo6zH672ruMPN+Na3uLTWxrKi1bPM +bW90MK1xOSvwMDG97Swv9rW0KGjDQoNCrTL1sINCkdvb2dsZSDVyrun0KHX6b60yc8NCg0Kx+vX otLio6y4w7Xn19PTyrz+tdjWt7K7xNy908rcu9i4tNPKvP6ho9KqveK+9s7KzOK78sHLveLE+tXK u6e1xM/qx+mjrMfrt8POyiANCs7Sw8e1xLDv1vrW0
jazzbond 2013-02-01
  • 打赏
  • 举报
回复
不行啊~~ 里面的\r\n被我去掉以后~~ 根本就没有 \ 了 我有点想不明白上面那一段放到解密工具上他完全可以解的出来 而C#老是报 无效的字符串长度
  • 打赏
  • 举报
回复
你替换成"没有"?还是"" 这样啊
tangzhiping121603 2013-02-01
  • 打赏
  • 举报
回复
解码工具是将里面的一些特殊字符进行了处理。
加载更多回复(3)

110,572

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧