- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当尝试使用 SecKeyCreateEncryptedData 加密纯数据 block 时,它使用指定的算法加密纯数据并且工作正常。我用于加密的代码片段是
SecKeyCreateEncryptedData(publicKey.underlying,SecKeyAlgorithm.eciesEncryptionSt
andardX963SHA1AESGCM,cdata!, &error)
但是当我尝试使用 SecKeyEncrypt 进行相同的加密时,它失败并返回值 (-50)。用于我的加密的代码片段是
SecKeyEncrypt(publicKey.underlying as SecKey, .PKCS1, digestBytes,
newdata.length, &signatureBytes, &signatureLength)
而且我也无法得到错误代码-50的错误描述。
最佳答案
这是这两个函数之间的一般区别,不仅限于 Swift。
SecKeyCreateEncryptedData
函数旨在替换 SecKeyEncrypt
的用法,因为它仅适用于 iOS 10+,Apple 官方指南正在使用它。虽然这两个函数都以SecKey
为参数,但是获取实例的方式也不同。
如果您的 publicKey
对于 SecKeyCreateEncryptedData
工作正常,那么相同的 publicKey
很可能不适用于 SecKeyEncrypt
函数。
要为SecKeyEncrypt
函数正确生成SecKey
,您需要
SecCertificateCreateWithData
获取SecCertificate
。请注意,证书应为.der
格式。SecCertificate
创建并评估 SecTrust
。SecTrust
中获取SecKey
您可以在此处找到更多详细信息 How can I get SecKeyRef from DER/PEM file .
关于ios - Swift 3 中 SecKeyCreateEncryptedData 和 SecKeyEncrypt 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49332756/
在尝试将 SecKeyEncrypt() 与 kSecPaddingNone 一起使用时,我遇到了一些挫折。经过大量调查,我找到了解决方法,但我想知道发生了什么。目前,我没有可用的代码,但我可以在今天
我正在尝试在 iOS 上进行原始 RSA 加密。请不要试图说服我不要这样做。 我基本上是用两个 key 进行加密。第一步,使用 key A,使用 SecPaddingPKCS1 并给我一个 256 字
从我的观察可以看出,苹果安全框架中SecKeyEncrypt方法的各种填充值不支持SHA512哈希摘要的OAEP填充。实际上,我似乎无法确定SecKeyEncrypt方法是否在CBC过程中对每个块进行
任何人请帮助从指数和模数创建SecKeyRef作为我的公共(public)指数 = 010001和 公共(public)模数 =008903fb6d15f352ed3b45add3216f632f71
我尝试使用 iPhone 的 PKI 库来加密一个短字符串 (12345678),但每当我尝试使用 SecKeyEncrypt 时,我总是收到错误 -9809(即 errSSLCrypto)。 Sec
对于 iPad 应用程序(ios5.0,arc),我需要加密传输到我正在使用的 Web 服务的数据。在阅读有关通过 Apple 提供的加密时,我遇到了两个 API 来执行此操作:CCCrypt 和 S
我正在将 PKI api 移植到 Swift 2.2 并发现以下错误。在 Objective-C 中一切正常。 要加密的数据对象大小为 32 字节。这是我正在使用的代码。 let buflen = 6
当尝试使用 SecKeyCreateEncryptedData 加密纯数据 block 时,它使用指定的算法加密纯数据并且工作正常。我用于加密的代码片段是 SecKeyCreateEncryptedD
我正在尝试使用 iOS 上的安全框架使用 RSA 加密一些数据。我想加密一个简单的 base64 编码字符串,如下所示: NSData *data = [[NSData alloc] initWith
我正在使用 SecKeyEncrypt 将 JSON 格式的字符串作为输入。如果向 SecKeyEncrypt 传递一个小于 246 的 plainTextLength,它就可以工作。如果我传递给它的
我是一名优秀的程序员,十分优秀!