NSString 的 Base64 编码 [关闭]

2024-02-01

我正在尝试将用户名和密码发布到服务器。我想把这个用户名和密码转换成Base64编码。因此,将为授权字段添加此编码字符串。

是否有任何 API 已经可用于在 iOS 中进行 Base64 编码或者我们自己编写?


这可以通过实现用于 base64 转换的类方法来完成,以下代码用于转换。

+ (NSString*)base64forData:(NSData*)theData 
{
    const uint8_t* input = (const uint8_t*)[theData bytes];
    NSInteger length = [theData length];

    static char table[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";

    NSMutableData* data = [NSMutableData dataWithLength:((length + 2) / 3) * 4];
    uint8_t* output = (uint8_t*)data.mutableBytes;

    NSInteger i;
    for (i=0; i < length; i += 3) {
        NSInteger value = 0;
        NSInteger j;
        for (j = i; j < (i + 3); j++) {
            value <<= 8;

            if (j < length) {
                value |= (0xFF & input[j]);
            }
        }

        NSInteger theIndex = (i / 3) * 4;
        output[theIndex + 0] =                    table[(value >> 18) & 0x3F];
        output[theIndex + 1] =                    table[(value >> 12) & 0x3F];
        output[theIndex + 2] = (i + 1) < length ? table[(value >> 6)  & 0x3F] : '=';
        output[theIndex + 3] = (i + 2) < length ? table[(value >> 0)  & 0x3F] : '=';
    }

    return [[[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding] autorelease];
}

并在您的 URL 请求中添加以下代码以发送用户名和密码以进行授权...

[请求addValue:[NSString stringWithFormat:@"Basic %@",[className base64forData:[[NSString stringWithFormat:@"%@:%@",UsernameString,passwordString] dataUsingEncoding: NSUTF8StringEncoding]]] forHTTPHeaderField:@"Authorization"] ;

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

NSString 的 Base64 编码 [关闭] 的相关文章

  • GMSMapView 中的倒多边形

    我必须在我的 iPhone 项目中使用 Google 地图 并且我正在使用 GMSPolygon 来绘制多边形 但是如何填充地图上除多边形内部之外的所有位置 就像下图一样 谢谢 我玩过你的问题 主要思想是用多边形填充整个地球 然后为您的特定
  • iOS 10 的错误? NSDate 日本地区时间描述和 24 小时休息

    这似乎是 iOS 10 的一个错误 在 iOS 8 和 9 中都可以 NSDate date description 的小时描述是错误的 它附加了 24 小时描述和 12 小时描述 我没有使用 NSDateFormatter 只是默认设置
  • 无法将 admob 与 firebase iOS/Android 项目链接

    我有两个帐户 A 和 B A 是在 Firebase 上托管 iOS Android unity 手机游戏的主帐户 B 用于将 admob 集成到 iOS Android 手机游戏中 我在尝试将 admob 分析链接到 Firebase 项
  • 自动布局、UIDynamics 和动画

    我对自动布局还很陌生 并且对如何为视图设置动画感到困惑 我读了很多 我知道你必须遵守限制 编辑它 然后包装layoutIfNeeded in an UIView动画块 但当真正要做的时候 我却有点失落 我很乐意有人能向我解释如何做这个动画
  • Swift - 选择值后隐藏 pickerView

    我发现了类似的问题 他们的答案很有帮助 但我坚持最后一件事 我试图在点击字段时显示 pickerView 然后选择数据时 我希望 pickerView 隐藏 我可以从 pickerView 获取数据来隐藏 但是 pickerView 后面仍
  • iOS 8 中的 UISplitViewController 状态恢复

    在 iOS 8 上 UISplitViewController 似乎可以保存和恢复其子视图的状态 例如 主视图是否隐藏 这是不可取的 因为我的应用程序应该始终以横向方式显示主视图 并始终以纵向方式隐藏它 如果用户以横向模式关闭应用程序 保存
  • 如何从代码隐藏中设置 CarouselView 的项目?

    我有一个 CarouselView 它绑定到图像的 ItemsSource 但我想通过更改 CarouselView 的索引来更改当前显示的图像 我尝试使用 CarouselView Position 作为必须选择的元素的索引 但不幸的是这
  • 您将如何实现一个检测水平滑动以允许分页的 UITableView?

    我想实现一个 UITableView 一次显示 20 行 但考虑到我实际上可能要展示 120 个项目 我想使用某种分页来处理这个问题 使用前 20 项填充表 当用户从右向左滑动时 用接下来的 20 个项目重新加载 UITableView 从
  • 线程 1:信号 SIGABRT - AppDelegate.h

    main m Journey Created by Julian Buscema on 2014 07 13 Copyright c 2014 Julian Buscema All rights reserved import
  • iPhone 快照,包括键盘

    我正在寻找拍摄整个 iPhone 屏幕 包括键盘 的正确方法 我找到了一些截取屏幕的代码 CGRect screenCaptureRect UIScreen mainScreen bounds UIView viewWhereYouWant
  • iPhone Developer' 与任何有效的、未过期的证书/私钥对不匹配 - 但我正在创建 iPad 应用程序 [重复]

    这个问题在这里已经有答案了 可能的重复 代码签名错误 身份 iPhone Developer 与默认钥匙串中的任何有效证书 私钥对不匹配 https stackoverflow com questions 2108503 code sign
  • 重置转换后的 UIView 的原点会变得疯狂

    我使用 UIView transform 旋转 缩放 UIVIew 效果很好 然而 一旦我更改视图的框架原点 即使我没有执行任何进一步的 CGAffineTransforms 视图的内容也会开始 奇怪 地缩放 为什么会出现这种情况 我该如何
  • Xcode 3.1.4 中内置分析器

    我想知道 Xcode 3 1 4 中内置的分析器是否使得单独使用 LLVM Clang 静态分析器变得多余 请参考这里的原文 使用 LLVM Clang 静态分析器查找内存泄漏 http www fruitstandsoftware com
  • 检查 touchend 是否在拖动后出现

    我有一些代码可以更改表的类 在手机上 有时表格对于屏幕来说太宽 用户将拖动 滚动来查看内容 但是 当他们触摸并拖动表格时 每次拖动都会触发 touchend 如何测试触摸端是否是触摸拖动的结果 我尝试跟踪dragstart和dragend
  • iOS WKWebView.scrollView委托导致BAD_ACCESS

    我的 viewController 有一个 UIView 属性 其中包含一个 WKWebView 我将 WKWebView rollView 委托设置为我的 viewController 它是我的 UIView 子类的公共函数 并在我的 v
  • 对使用phonegap和钛的质疑[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 最近我听说了 PhoneGap 和 Titanium 移动网络应用程序的开发 我分析了这两个 Web 应用程序 并了解了如何使用它们以
  • 如何更改已上传的 Firebase 存储图像文件名?

    我需要更改已上传到 firebase 存储中的文件名 因为 在 firebase 存储中上传图像后 我将 url 保存在 firebase 数据库中的特定子 文件夹 下 但是 当我将图像移动到另一个子 文件夹 时 我需要根据新名称更改存储中
  • 将 iPhone 上的 stderr 写入文件和控制台

    我正在遵循答案中的建议here https stackoverflow com questions 5179108 iphone how to read application logs from device用于将 iOS 设备上的 NS
  • 在 iOS 上从 GPS 获取时间

    我正在开发一个跟踪器应用程序 该应用程序需要高精度地了解设备位置 即它使用位置服务并忽略水平精度低于 20 米的位置 CLLocation没有明确声明是否通过 GPS 确定 但是 如果水平精度为 20 米或更好 则可以认为它是来自 GPS
  • 如何获取 UIWebView 中元素的位置?

    我在 iPad 程序中加载了 html 的 UIWebView 通过使用 webkit column width 我将 html 分为几列 padding 0px height 1024px webkit column gap 0px we

随机推荐

  • 递归删除文件

    有没有人有解决方案来删除将文件从 Mac 移动到 Linux 服务器后获得的那些讨厌的 和 DS Store 文件 指定一个起始目录并放开它 就像 var www html 下 切换到目录 然后使用 find name DS Store p
  • asp.net在代码后面获取html控件

    如果我使用 JavaScript 更改页面上的 html 如何在 ASP NET 代码后面访问这些更改 我在网上找到了一些dhtml 拖放 代码 http www dhtmlgoodies com scripts drag drop nod
  • 从 Google 表单检索响应的链接

    我有一个附加到 Google 表单的脚本 该脚本在提交时向 Discord 频道发送通知 我想包含指向个人回复的直接链接 链接看起来像https docs google com forms d
  • 引发者:java.lang.IllegalArgumentException:接收器未注册:null

    我正在尝试注册广泛的互联网连接和 wifi 扫描结果 但收到此错误 由以下原因引起 java lang IllegalArgumentException 接收器未注册 null 互联网连接广播有效 但 wifi 扫描结果无效 我感谢任何帮助
  • local-name 如何在 xml 节点中查找属性?

    我正在尝试选择 XML 节点中的一个属性 如下所示
  • 如何解析不带引号的 KEY 字符串的 JSON?

    我想解析 iOS SBJSON 框架中以下 url 产生的 json 输出 while 1 title school Google Maps url maps q school x26mrt yp x26sll 13 006389 80 2
  • 使用python向bot框架添加自适应卡

    我正在从这里玩一点 python 机器人框架的示例https github com Microsoft botbuilder python https github com Microsoft botbuilder python现在我想在响
  • iOS 上国家/地区代码的电话号码格式

    我需要将电话号码格式显示为占位符UI文本字段 我怎样才能做到这一点 对于国家 地区选择 我使用下面提到的库 它为我提供了针对用户选择的国家 地区的国旗和国家 地区代码 https github com NikKovIos NKVPhoneP
  • 在多线程环境中读取值

    我正在浏览有关线程和锁的 JLS 文档http docs oracle com javase specs jls se7 html jls 17 html jls 17 5 http docs oracle com javase specs
  • swprintf 在 8 位范围之外的字符上被阻塞

    这种情况发生在 OS X 上 但我怀疑它适用于任何 UNIX y 操作系统 我有两个看起来像这样的字符串 const wchar t test1 const wchar t x44 x00 x00 x00 x73 x00 x00 x00 x
  • 在 jMeter 的值字段中使用变量

    我添加了一个用户定义变量元素 然后创建一个值为 123456 的变量 Parameter 并将其传递到 GET 请求中 创建了第二个变量 Response 其值为 无效代码 123456 我添加了一个响应断言元素 将 Response 变量
  • 当 pyinstaller 发现版本冲突时手动指定库

    使用 pyinstaller 时是否可以在 Mac OSX 上手动替换或指定 dylib 的位置 我在尝试打开已完成的 app 时收到错误 Traceback most recent call last File DeepMeerkat m
  • NHibernate 和共享网络托管

    有没有人能够在共享网络主机上启动并运行基于 NHibernate 的项目 NHibernate 在幕后用反射做了很多奇特的事情 但我目前使用的主机只允许应用程序以中等信任度运行 这限制了你可以用反射做的事情 并且它会带来各种安全性权限错误
  • Android Studio:Gradle 构建失败 - 任务“:compileDebugAidl”执行失败

    在 Android Studio I O 预览 AI 130 677228 中更改源代码并使用 gradle 进行构建后 构建失败并出现以下错误 Gradle FAILURE Build failed with an exception W
  • 选择列表中的 HTML 复选框

    我正在尝试在选择列表中构建一个复选框列表 例如此处的国家 地区列表 链接文本 https careers microsoft com Search aspx 我正在使用 Asp net MVC 因此它需要是 pure html JavaSc
  • Elasticsearch:如何删除映射类型而不删除整个索引?

    是否可以从索引中删除单个映射类型而不删除整个索引 https www elastic co guide en elasticsearch reference current indices delete mapping html https
  • 如何使用 data-href 打开新选项卡

    我正在使表格行可单击 但单击后我想打开一个新选项卡 我尝试使用data target但这没有用 tr class table row tr 可以这样做 jQuery JSFiddle 1
  • 如何使用 Youtube API 为 Youtube 视频添加字幕?

    是否有可能添加字幕 to Youtube视频使用Google Youtube API v3 重要条件 视频不是所有者 任务 使用所选语言添加自定义字幕Google APIs Client Library for JavaScript Goo
  • Python MS Word [重复]

    这个问题在这里已经有答案了 可能的重复 在 Python 中读取 写入 MS Word 文件 https stackoverflow com questions 188444 reading writing ms word files in
  • NSString 的 Base64 编码 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi