最近开发苹果应用,要用到 RSA 加密。
却发现 SecKeyEncrypt 已被 iOS 16 弃用。https://developer.apple.com/documentation/security/1617956-seckeyencrypt
苹果官方文档也没给出替代方案。网上也搜不到相关话题。
真是太奇怪了,难道苹果手机和电脑都不再支持 RSA 加密了吗?
最近开发苹果应用,要用到 RSA 加密。
却发现 SecKeyEncrypt 已被 iOS 16 弃用。https://developer.apple.com/documentation/security/1617956-seckeyencrypt
苹果官方文档也没给出替代方案。网上也搜不到相关话题。
真是太奇怪了,难道苹果手机和电脑都不再支持 RSA 加密了吗?
该回答内容部分引用GPT,GPT_Pro更好的解决问题
由于 ios 16 已弃用 RSA 加密,所以苹果手机和电脑可能不再支持 RSA 加密了。这也就意味着在最新版本的 ios 中,无法使用 SecKeyEncrypt 方法来进行 RSA 加密。
但是,这并不意味着 RSA 加密已经完全失效,而是需要使用者采取其他办法来实现 RSA 加密。例如,可以使用 OpenSSL,一个开源的加密库,来实现 RSA 加密。OpenSSL 也被广泛应用于苹果系统中,因此可以在 iOS 系统中使用。
下面是一个使用 OpenSSL 实现 RSA 加密的示例代码:
#include <openssl/rsa.h>
#include <openssl/pem.h>
/* 产生 1024 位的 RSA key */
RSA *generateRSAKey(unsigned int bits){
RSA *rsa = NULL;
BIGNUM *bne = NULL;
bne = BN_new();
int ret = BN_set_word(bne, RSA_F4);
if(ret != 1){
return NULL;
}
rsa = RSA_new();
ret = RSA_generate_key_ex(rsa, bits, bne, NULL);
if(ret != 1){
return NULL;
}
return rsa;
}
上面的代码可以帮助我们在 ios 16 中使用 OpenSSL 来实现 RSA 加密。另外,我们也可以选择其他的加密库来实现 RSA 加密,例如 Crypto++、Botan、Libgcrypt、Libsodium 等。所以,即使 ios 16 已弃用 RSA 加密,我们也可以通过其他的方式来实现 RSA 加密。
如果回答有帮助,望采纳。