用base64_decode解析一个加密字符串生成的文本第二个字符是\0

snow_zhao_2017 2020-02-29 04:50:45
用base64_decode解析一个加密字符串生成的文本第二个字符是\0
生成的文本长度是24,我是通过char a[]一个个看发现的,现在我要把这个生成的字符串传给另外一个函数,不知该怎么办
要解密的字符串是这个:
YgD/UEZ5oxFGI048BooZIF/HCdrtWSiG
...全文
322 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
snow_zhao_2017 2020-03-01
  • 打赏
  • 举报
回复
搞定!搞定!搞定!
gouyanfen 2020-02-29
  • 打赏
  • 举报
回复
引用 楼主 snow_zhao_2017 的回复:
用base64_decode解析一个加密字符串生成的文本第二个字符是\0 生成的文本长度是24,我是通过char a[]一个个看发现的,现在我要把这个生成的字符串传给另外一个函数,不知该怎么办 要解密的字符串是这个: YgD/UEZ5oxFGI048BooZIF/HCdrtWSiG
你的问题在于myfunc处理的问题,他接收的参数应该是byte * str,int len,这样才可以在内部处理二进制串,你只给一个参数,遇到0之后就出错了
真相重于对错 2020-02-29
  • 打赏
  • 举报
回复
我怀疑你不知道什么叫二进制。
真相重于对错 2020-02-29
  • 打赏
  • 举报
回复
所谓的二进制数据,就是一连串01组成的字节,具体要看编码与解码是否正确, 只有去判断编码之前和解码之后的数据是否二进制相等。 比如你要把整形3编码,他的二进制数据就是0x00000003,编码为一个base64的字符串,然后解码,看看数据还是不是0x00000003
snow_zhao_2017 2020-02-29
  • 打赏
  • 举报
回复
引用 3 楼 真相重于对错 的回复:
[quote=引用 2 楼 snow_zhao_2017 的回复:]
[quote=引用 1 楼 真相重于对错 的回复:]
base64 是把二进制数据编码为文本数据。反过来它是变成二进制数据,而不是文本。。。。

代码部分是这样的
char * str=base64_decode("YgD/UEZ5oxFGI048BooZIF/HCdrtWSiG");
char * abc=myfunc(str);
printf("%s",abc);

-----base64解密其它字符串是正确的,如上面就出错了,不知怎么搞[/quote]
你认为二进制数据是可以打印的?????[/quote]

myfunc调用时的实际参数是解码后字符串的一部分,主要就是myfunc调用不了完整的参数
真相重于对错 2020-02-29
  • 打赏
  • 举报
回复
引用 2 楼 snow_zhao_2017 的回复:
[quote=引用 1 楼 真相重于对错 的回复:] base64 是把二进制数据编码为文本数据。反过来它是变成二进制数据,而不是文本。。。。
代码部分是这样的 char * str=base64_decode("YgD/UEZ5oxFGI048BooZIF/HCdrtWSiG"); char * abc=myfunc(str); printf("%s",abc); -----base64解密其它字符串是正确的,如上面就出错了,不知怎么搞[/quote] 你认为二进制数据是可以打印的?????
snow_zhao_2017 2020-02-29
  • 打赏
  • 举报
回复
引用 1 楼 真相重于对错 的回复:
base64 是把二进制数据编码为文本数据。反过来它是变成二进制数据,而不是文本。。。。

代码部分是这样的
char * str=base64_decode("YgD/UEZ5oxFGI048BooZIF/HCdrtWSiG");
char * abc=myfunc(str);
printf("%s",abc);

-----base64解密其它字符串是正确的,如上面就出错了,不知怎么搞
真相重于对错 2020-02-29
  • 打赏
  • 举报
回复
base64 是把二进制数据编码为文本数据。反过来它是变成二进制数据,而不是文本。。。。

70,037

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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