首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Swift 4中从String对象创建CFData对象

在Swift 4中从String对象创建CFData对象
EN

Stack Overflow用户
提问于 2018-06-03 00:41:26
回答 1查看 4.1K关注 0票数 3

根据GDPR的要求,我正在使用苹果内置的“安全”模块来帮助加密和解密信息。我能够使用文档很容易地生成我的私钥和公钥。

我发现自己现在遇到的问题是在尝试进行加密时。在我遵循的苹果文档(找到here)中,我能够进入SecKeyCreateEncryptedData函数步骤。我在显示"plainText as CFData“的行上遇到了错误。简单地说,我从UITextField接收了一个String对象,并通过在UITextField对象后添加".text“来正确地检索输入文本。

当您这样做时,Xcode尖叫着一个字符串对象必须使用"as!“强制向下转换。如果我们想要它作为CFData。所以我遵守了Xcode,这一切都是为了看看这是不起作用的。我得到了“Thread1: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP,subcode=0x0)”这行代码,文档上写着"plainText as CFData“。当我通过调试器查看它时,它是一大堆程序集,老实说,这是我无法理解的。

无论如何,这让我感到困惑,因为如果一个字符串不是文档所引用的plainText,那么什么才是呢?我的直觉只是让我研究一下Swift中的CFData是什么,这样我就可以将String对象转换/创建为CFData对象,并将其传递到参数中,而不需要在函数中转换它。这种搜索让我找到了here,然后我找到了我认为是一个很好的解决方案here。现在,我可能错了,这是一个很好的变通办法,但这是我目前所能想到的全部。我现在正试图弄清楚我传递给CFDataCreate函数的是什么参数。我理解类型,但实际上没有任何示例(甚至在文档中也没有),我只是不知道如何获取它,或者传递什么,以及如何以它所需的适当格式获取我的String对象。

感谢您的帮助,如果您有任何问题要问我,请提出来

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-03 03:15:17

在加密语言中,“明文”指的是“未加密的数据”。它不一定是人类可读的文本。

您可以像这样将String转换为CFData

let string = "Hello, world!"
let data = string.data(using: .utf8)! as CFData
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50659048

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档