Swift 3 将 SecKey 导出为字符串

2023-11-23

我正在使用 swift 3 开发一个 iOS 应用程序。

我需要导出一个SecKey(这是用户 RSA 公钥引用)到字符串(例如 base64),以便通过生成的 QRCode 共享它。

它也必须以另一种方式工作,因为扫描该文件的其他用户QRCode,将能够重建一个SecKey从 QRCode 中提取的字符串的引用。

我发现了一些教程,但我不明白我需要从中提取什么SecKey参考,我不知道如何将其转换为String.


导出密钥(仅限 iOS 10)

var error:Unmanaged<CFError>?
if let cfdata = SecKeyCopyExternalRepresentation(publicKey!, &error) {
   let data:Data = cfdata as Data
   let b64Key = data.base64EncodedString()
}

See https://stackoverflow.com/a/30662270/5276890 and https://stackoverflow.com/a/27935528/5276890对于可能支持 iOS

重新导入密钥

guard let data2 = Data.init(base64Encoded: b64Key) else {
   return
}

let keyDict:[NSObject:NSObject] = [
   kSecAttrKeyType: kSecAttrKeyTypeRSA,
   kSecAttrKeyClass: kSecAttrKeyClassPublic,
   kSecAttrKeySizeInBits: NSNumber(value: 512),
   kSecReturnPersistentRef: true as NSObject
]

guard let publicKey = SecKeyCreateWithData(data2 as CFData, keyDict as CFDictionary, nil) else {
    return
}

注意:这会生成一个 base64 密钥而不是证书。许多在线代码示例都涉及如何使用 SecCertificateCreateWithData 从证书生成公钥

另外:512 位生成速度很快,但毫无价值。一旦您对结果感到满意,请选择一个更长且安全的值。

当导入我生成和导出的密钥时,我得到了有效的结果,所以我认为它有效,但我没有尝试用它进行加密和解密。

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

Swift 3 将 SecKey 导出为字符串 的相关文章

  • 如何在核心数据中应用group by子句

    我正在实现 tableview 我想在 tableview 部分显示类名 并且我正在尝试获取 使用核心数据实现的数据库中的类值 我想使用类名上的 group by 子句获取数据 这是我的代码 AppDelegate appDelegate
  • 我是否可以通过第三方支付网关为我的 iPhone 应用程序提供付款服务?

    所以我有一个 RESTful Api 服务 它有免费和付费的东西 任何人都可以利用我们的 API 创建 iPhone Andriod MSPhone 应用程序 不好的类比 假设我们正在为 Steam 创建一个聊天 api 服务 并且您可以为
  • NSUndoManager 会撤消后台发生的更改吗?

    我有一个编辑视图控制器 我正在使用 NSUndoManager 它是我的持久性存储 核心数据项目 的一组 我的应用程序的功能之一是与外部服务器同步 我想知道的是 如果我正在视图中编辑某些内容 同时应用程序正在与服务器同步 如果我改变主意并决
  • 当输入集中在移动 Safari 上时,页面底部出现不需要的填充

    我正在移动 safari 上使用文本区域 当文本区域聚焦时 视口似乎会在文档下方添加填充 当检查和选择区域时 它不会解析为元素 甚至不会解析为 html 节点 文本区域在屏幕上的位置或是否绝对位置似乎并不重要 当其聚焦时 填充始终存在 有时
  • 如何在 Flutter 中为 Button 添加渐变?

    有没有办法改变ElevatedButton背景颜色渐变 如果没有一些小瑕疵或问题 例如缺少涟漪效应 不需要的边框 不尊重主题的内容 上述所有解决方案都无法真正发挥作用minWidth对于按钮 The 下面的解决方案没有上述问题 关键部分是使
  • 文本末尾的空格在右对齐 UITextField 中不可见

    我有一个右对齐的UITextField 最初编辑时 文本末尾不会出现空格 我用这个解决了this https stackoverflow com q 19569688 1971013 替换 与不间断的 u00a0 然而 上面仅在编辑文本字段
  • 如何通过情节提要向导航栏添加后退按钮?

    我现在很困惑 我在网上到处都看到添加自定义后退按钮的教程 但我什至似乎无法启动默认按钮 在我的 MainViewController 中 我有performSegueWithIdentifier 然后在另一端 我希望导航栏在左侧有后退按钮
  • 从 NSString 获取子字符串,直到到达特定单词

    假设我有这个NSString Country Address Tel number 我该如何获取之前的子字符串Tel 国家地址 然后我该如何获取后面的子字符串Tel 数字 使用 NSScanner NSString string Count
  • 按下后退按钮时 SwiftUI 工具栏项目被剪裁

    我在 SwiftUI 中遇到了一种奇怪的行为 我似乎无法解决它 鉴于以下简单的示例应用程序 我遇到了这种行为 工具栏项目在初始运行时正确呈现 但导航离开并返回它会被剪切 重新创建此示例代码 内容视图 swift import SwiftUI
  • 从 UIImagePickerControllerReferenceURL 加载 UIImage

    我正在使用 UIImagePickerController 来允许用户从图像库中选择图像 然后我想在 sqlite 数据库中启动该文件的位置 以便稍后可以参考它 我一直在谷歌上搜索如何做到这一点 但我的结果相当简短 我知道我可以通过调用委托
  • 如何在 Swift 中检查 while 循环条件中的“nil”?

    如何检查nil在 Swift 的 while 循环中 我在这方面遇到错误 var count UInt 0 var view UIView self while view superview nil Cannot invoke with a
  • .net MVC 将 MP4 流式传输到 iDevice 问题

    我一直在编写用于提供视频服务的一段代码 但遇到了一些问题 代码如下 public ResumingFileStreamResult GetMP4Video string videoID if User Identity IsAuthenti
  • 关系上的核心数据属性?

    我刚刚开始使用核心数据 我有一个Headache实体和一个Medication实体 头痛和药物之间存在多对多的关系 当您加重头痛时 您可以选择多种药物 我希望能够指定这些药物的数量 我对 MySQL 更熟悉 您可以在其中创建一个数据透视表
  • Xcode 6 代码编辑器异常行为

    截至最近 我在使用 Xcode 6 代码编辑器时遇到了一些麻烦 最终导致编辑窗口中的焦点快速变化 在编辑文本时跳转到同一文件中完全不同的位置 一切就是这样开始的 最近 编辑器拒绝上下滚动 挂起 停止显示行号或任何其他文本 我该怎么做才能让它
  • NativeScript:禁用 iOS WebView 缩放控件的方法?

    我正在尝试找出一种方法来防止用户通过捏合手势和双击来放大和缩小 iOS WebView tns ios 3 4 1 本质上禁用所有缩放 就像苹果之前使用的 html 元标记一样让用户决定是否要使用 iOS 10 及更高版本进行缩放 我找到了
  • CF 类型的带有 __attribute__((NSObject)) 的强 @property 不会保留

    更新 自 Xcode 4 6 起 此问题已得到修复 现在 这项技术再次按预期发挥作用 但是 在代码中使用之前 请务必阅读 Rob Napier 出色答案顶部的注释 原帖 ARC Xcode 4 3 1 iOS 5 1 我有一个 CF 类型
  • 使用 Core Data Swift 对 TableView 和行进行分区

    我在 sqlite 中有两个表 代码由 XCode Generation 生成 class Event NSManagedObject NSManaged var startDate NSDate NSManaged var details
  • 去除iOS输入阴影

    在 iOS Safari 5 上 我必须遵循输入元素 顶部内部阴影 我想删除顶部阴影 错误 webkit appearance不保存 目前的风格是 input border radius 15px border 1px dashed BBB
  • UITableView 自动调整行大小约束在 iPhone 6Plus 上神秘破坏

    我有一个自定义的 UITableViewCell 它有一个缩略图和一堆文本 行高配置为使用自动计算 tableView estimatedRowHeight 129 tableView rowHeight UITableViewAutoma
  • 如何在运行时更改 UIMenu 内 UIAction 的状态?

    如何更改 UIAction 的状态 目标是切换 UIMenu 内 UIAction 旁边的状态复选标记 更改 UIAction 的state通过存储在视图控制器中的引用似乎根本不会改变状态 我错过了什么吗 View Controller i

随机推荐

  • html 标签上的 Jsoup 属性删除

    我有一个问题 我想过滤某些可能包含 html 的文本 我使用 jsoup 将标签列入白名单并清理标签 效果非常好 我唯一的问题是某些标签可以包含属性 主要是样式或类 但也可能有不同的属性 名称 目标等 在清理时这不是问题 因为它们被很好地剥
  • C#:获取斯堪的纳维亚语言的字母?

    有没有办法获取语言中的字母 我想做分页 我想显示例如字母表的最后 7 个字母 对于荷兰语字母表 t z 是最后 7 个字母 但对于瑞典语字母表 它是 w 即 w x y z 当我将其作为输入时 对于 正常 a z 字母表 我可以生成 使用
  • C、C++ 或 Fortran 中的多元正态 cdf [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 是否有开源软件可以计算 C C 或 Fortran 中高斯分布的多变量 维度大于 3 不是二变量或三变量 数值 cdf 我相信 IMSL 能做到 h
  • Python (Flask) 为 Angular 项目的 index.html 文件提供服务

    有谁知道如何使用 Flask 提供 Angular 单页应用程序 我在提供默认路由 时遇到问题 该路由应该加载index html 和相关组件 这是我的烧瓶功能 app route def hello world return send f
  • 旋转自定义 UITableViewCell

    我有一个自定义 UITableViewCell 其中包含多个 UIButton 每个按钮的框架位置都相对于单元格宽度 我设置了 autoresizingMask UIViewAutoresizingFlexibleWidth 这样当应用程序
  • 将矩阵 R 中的所有元素相加

    我正在尝试添加矩阵中的所有元素 这是我的矩阵的示例 实际矩阵更大 m matrix c 528 479 538 603 nrow 2 ncol 2 m A B male 528 538 female 479 603 我正在尝试这样做 sum
  • React-native 中“不存在捆绑包 URL”是什么意思?

    当我运行react native项目时 出现错误no bundle URL present 但我不知道自己犯了什么错误 我很困惑 解决错误No bundle URL present by 在项目根目录中运行以下命令来删除 iOS 构建目录
  • 允许在运行时不动态分配数组大小吗? [复制]

    这个问题在这里已经有答案了 我已经使用 C 几年了 今天我看到了一些代码 但这怎么可能是完全合法的呢 int main int argc char argv size t size cin gt gt size int array size
  • 如何使用Java获取上传到Amazon S3的文件的进度状态

    我正在使用 Java 将多个文件上传到 Amazon S3 我使用的代码如下 MultipartHttpServletRequest multipartRequest MultipartHttpServletRequest request
  • R:使用省略号参数 (...)

    我想创建一个包装函数来替换一些默认参数 这是我正在努力解决的问题的核心 Error in localWindow xlim ylim log asp formal argument cex matched by multiple actua
  • 在 ClientWebSocket 中设置“User-Agent”HTTP 标头

    我需要在 a 中设置 User Agent HTTP 标头ClientWebSocket对象 但这是不可能的 虽然有一个ClientWebSocket SetRequestHeader header value 如果我尝试设置该标头 该方法
  • 如何将 requestdispatcher 转发到远程 URL

    我有一个 HTML 页面http www mywebapp com sample html这是从远程服务器使用的 我正在将 HTML URL 作为隐藏表单在同一 HTML 表单中传递
  • 将 pandas DataFrame 写入 Excel,针对不同的列使用不同的格式

    我正在尝试写一个熊猫DataFrame to an xlsx文件 其中不同的数字列将具有不同的格式 例如 有些仅显示两位小数 有些不显示 有些将格式化为带有 符号的百分比 等等 我注意到DataFrame to html has a for
  • 更改 PyPI 上包名称的大小写

    我最近将一个包上传到 PyPI 名称为混合大小写字母 QualysAPI 回想起来 我认为包名称最好全部小写PEP 8 我有办法改变它吗 当我尝试在 Pypi 上手动编辑包名称时 会发生以下情况 禁止 包名称与现有包 QualysAPI 冲
  • Promise.then.then 和 Promise.then; 之间有区别吗?承诺.然后[重复]

    这个问题在这里已经有答案了 我想知道以下两者有区别吗 aPromiseObj then fn1 then fn2 catch fn3 aPromiseObj then fn1 aPromiseObj then fn2 aPromiseObj
  • 如何初始化一系列不可移动、不可复制的对象?

    假设我有一个既不可移动也不可复制的类型 struct foo explicit foo size t foo foo foo const delete foo foo delete foo operator foo const delete
  • Java 8 添加没有时间段的天数

    这里是 Java 8 我正在尝试采取当前Date 现在 添加一天 并获得新的Date代表明天的实例 没有时间成分 只有年 月和日 我最好的尝试 Calendar calendar Calendar getInstance calendar
  • 如何在 ggplot2 中创建 Marimekko/马赛克图

    当 x 和 y 都是分类变量时 Marimekko Mosaic 图是一个很好的默认图 使用 ggplot 创建这些的最佳方法是什么 我能找到的唯一参考资料是这个 4yo博客文章但这似乎有点过时了 现在有更好或更简单的实现吗 GGally包
  • 将 CM Synergy 存档转换为免费源代码控制

    由于规模缩小和节省成本 我们的组织正在从 CM Telogic Rational Synergy 转向免费工具 最有可能是 SVN 有没有办法将历史记录和分支信息从 Synergy 转移到免费工具 我不知道将 CM Synergy 源库转储
  • Swift 3 将 SecKey 导出为字符串

    我正在使用 swift 3 开发一个 iOS 应用程序 我需要导出一个SecKey 这是用户 RSA 公钥引用 到字符串 例如 base64 以便通过生成的 QRCode 共享它 它也必须以另一种方式工作 因为扫描该文件的其他用户QRCod