在 PHP 中,我可以调用base64_encode("\x00". $username. "\x00". $password)
和"\x00"
代表 NULL 字符。
现在,在 Objective-C 中,我有一个函数可以将 NSData 转换为base64 编码的 NSString由戴夫·德里宾创建。
如何从包含 NULL 字符的字符串创建数据?
这似乎不起作用...
NSData * authCode = [[NSString stringWithFormat:@"%c%@%c%@", '\0', self.username, '\0', self.password] dataUsingEncoding:NSUTF8StringEncoding];
像这样:
char bytes[] = "\0username\0password";
NSData * data = [NSData dataWithBytes:bytes length:sizeof(bytes)];
NSLog(@"%@", data);
Output:
2010-01-22 09:15:22.546 app[6443] <00757365 726e616d 65007061 7373776f 726400>
Or from NSString
:
char bytes[] = "\0username\0password";
NSString * string = [[NSString alloc] initWithBytes:bytes length:sizeof(bytes) encoding:NSUTF8StringEncoding];
NSData * data = [string dataUsingEncoding:NSUTF8StringEncoding];
您可以在开头、用户名/密码之间和末尾看到空字节 - 因为char[]
是 null 终止的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)