iOS上的Base64编码最后缺少填充
Posted
技术标签:
【中文标题】iOS上的Base64编码最后缺少填充【英文标题】:Base64 encoding on iOS missing padding at the end 【发布时间】:2015-01-12 20:41:06 【问题描述】:我需要将身份验证标头发送到服务器。服务器正在使用基本身份验证,因此它期待“身份验证:基本编码用户:通过”。我在 *** 上找到了如何将字符串编码和解码为 Base64:
NSData *plainData = [plainString dataUsingEncoding:NSUTF8StringEncoding];
NSString *base64String = [plainData base64EncodedStringWithOptions:0];
NSLog(@"%@", base64String);
如果我用它编码“test:test”,它会返回:dGVzdDp0ZXN0
。
问题是我的服务器期望收到:dGVzdDp0ZXN0DQo=
我的编码方式有什么问题?最后一个DQo=
是填充?我怎么得到那个填充物?!
谢谢!
【问题讨论】:
【参考方案1】:dGVzdDp0ZXN0DQo= is "test:test\r\n"
您的输入缺少回车/换行。
您可以通过谷歌搜索在网络上轻松找到 base64 解码器。例如
www.base64decode.org
【讨论】:
以上是关于iOS上的Base64编码最后缺少填充的主要内容,如果未能解决你的问题,请参考以下文章
如果输入长度不能被 3 整除,为啥 base64 编码需要填充?
密码学Base64 编码 ( Base64 简介 | Base64 编码原理 | 最后编码组字节不足时补位 ‘=‘ 符号 | Base64 编码实现参考 )