gpt4 book ai didi

objective-c - Xcode需要Openssl RSA解密功能

转载 作者:搜寻专家 更新时间:2023-10-30 20:26:00 24 4
gpt4 key购买 nike

我正在从 xcode 中的应用程序读取加密字符串,我必须编写一个使用 RSA 解密的函数来解码和显示消息。

我完全不知道从哪里开始。

我在 xcode 中编译了 Openssl,我正在使用 openssl/rsa.h 文件。

我正在尝试使用该功能:

RSA_private_decrypt(int flen, const unsigned char *from, unsigned char *to, RSA *rsa, int padding);

但是后来我在 Openssl 主站点的某个地方读到该函数只返回一个数字而不是实际的字符串。我也不知道要传递什么参数。

我找到的唯一引用是 openssl/rsa.h 文件并查看它包含的函数。

过去几个小时我尝试做一些研究,但我没有找到任何答案。

我想知道是否有一个简单的函数可以传递我的加密字符串和我的私钥(使用文件或硬编码)并且它可以返回解密的字符串?

如果没有,是否有关于如何在 Objective C 编程中使用 Openssl 的指南?

如果您需要有关此问题的更多信息,请告诉我。

提前谢谢你。

最佳答案

您可能想查看 Apple 在其 Security Overview 中使用安全转换(这避免了 openssl)的示例.

如果运气好的话,您可以使用 apple transforms 做一些事情并使用该程序。

如果不是——或者如果出于某种原因你真的想使用 openssl;然后 openssl 源包含示例文件 openssl-0.9.8t/apps/rsa.c,它几乎允许选择性的剪切和粘贴来使事情正常进行。

从命令行执行 man RSA_private_decrypt 将显示手册页(或从 Xcode 内部到手册页)。或查看 http://www.openssl.org/docs/crypto/RSA_public_encrypt.html .

以上示例使用:

unsigned char in[] = { 1, 2, ... byte array to decrypt };
// size of that in byte array
int inlen = sizeof(in);

// output buffer size depends on the key type.
char * out = malloc(RSA_size(rsa));

int e = RSA_private_decrypt(inlen, in, out, rsa, RSA_PKCS1_PADDING);

其中 padding 是手册页中的值之一。

rsa 的值初始化起来有点复杂,因为这是您设置 key 的地方,而不是其他地方。检查上面的 rsa.c 文件以获取各种填充方式的示例 - 它通常归结为如下内容:

EVP_PKEY *pkey = load_key( ... , password,... );
rsa = EVP_PKEY_get1_RSA(pkey);

其中load_key是借鉴openssl的app examples

关于objective-c - Xcode需要Openssl RSA解密功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11476833/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com