关于c#base64加密解密的问题

mao512642907 2014-05-25 08:03:39
密文
cWF6MzIx
cQBhAHoAMwAyADEA 原文都是qaz321

cQBhAHoAMwAyADEA用php base64_decode 能解密出来是qaz321,但是用C# FromBase64String 解密出来就只有一个q

c#用 ToBase64String 加密是cWF6MzIx,请问这个cQBhAHoAMwAyADEA密文是怎么来的
?

如何解码cQBhAHoAMwAyADEA
...全文
319 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
skk_7 2014-06-30
  • 打赏
  • 举报
回复
楼主解决了? 我现在碰到一个问题 我这边是php 和 c#对接接口 。他们发过来的base64编码的 我这边用phpbase64 解码不行呢。改怎么解吗啊
宝_爸 2014-05-26
  • 打赏
  • 举报
回复
澄清下,base64应该叫做编码解码,而不是加密解密。
save4me 2014-05-25
  • 打赏
  • 举报
回复
解码成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);
save4me 2014-05-25
  • 打赏
  • 举报
回复
不好意思,刚才的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)));
引用 4 楼 save4me 的回复:
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/可以看到不一样的结果
save4me 2014-05-25
  • 打赏
  • 举报
回复
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/可以看到不一样的结果
引用 楼主 mao512642907 的回复:
密文 cWF6MzIx cQBhAHoAMwAyADEA 原文都是qaz321 cQBhAHoAMwAyADEA用php base64_decode 能解密出来是qaz321,但是用C# FromBase64String 解密出来就只有一个q c#用 ToBase64String 加密是cWF6MzIx,请问这个cQBhAHoAMwAyADEA密文是怎么来的 ? 如何解码cQBhAHoAMwAyADEA
  • 打赏
  • 举报
回复
它的二进制,总是有两个0字节,每一个字母转换完都有4个字节。
mao512642907 2014-05-25
  • 打赏
  • 举报
回复
搞了半天,没想到Unicode。gb2312,uft-8都试了,都不行。谢谢,
  • 打赏
  • 举报
回复
Encoding.Unicode.GetString(Convert.FromBase64String(s));

110,531

社区成员

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

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

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