使用RSA算法加密NSString,在iOS中使用已知的模数和指数键

时间:2013-04-12 11:02:49

标签: iphone ios objective-c rsa

在iOS应用程序中,我需要使用RSA算法加密NSString,我已经知道了公共模数和指数密钥。在Android方面,他们使用了充气城堡ApI进行RSA加密。可以帮助我如何加密如何加密使用这些公共模数和指数密钥的NSString可以生成与Android中类似的加密。我查看了许多可用的源代码但无法生成正确的加密。任何帮助都将受到高度赞赏。 模关键,我是“117130940722358865944076735715016871148960803304334901248996815419815052552875336322790410991392433604701394608500231884113911915168625416296669114728862690539451024021812353340986348428958506523689933432584403548435474622224828221548841371083486321081622447517054022904372023020885356296462823306439795173749” 指数为“65537” 请帮我用RSA加密加密NSString。

2 个答案:

答案 0 :(得分:0)

您可以将openSSL用于此

https://www.openssl.org/docs/man1.1.0/crypto/RSA_public_encrypt.html

#include <openssl/rsa.h>
 int RSA_public_encrypt(int flen, unsigned char *from,
    unsigned char *to, RSA *rsa, int padding);
 int RSA_private_decrypt(int flen, unsigned char *from,
     unsigned char *to, RSA *rsa, int padding);

请注意出口合规性 Using SSL in an iPhone App - Export Compliance

您可能最好尝试将Common Crypto等效于工作

答案 1 :(得分:0)

在iOS中,您可能需要在没有OpenSSL等额外库的情况下工作。但要做到这一点,你必须拥有某种“大数字”库。我没有使用iOS,但搜索提到了“巨大数字”库,在此讨论:Store and perform operations with huge numbers in iOS 使用此库,您只需要RSA公式。快速搜索提供了这篇文章http://www.linuxjournal.com/article/6695,您不需要全部,只需向下滚动以提及ModExp - 当您拥有密钥和模数时,这是加密消息所需的操作。