提问者:小点点

使用已知模和指数密钥的RSA算法加密NSStringiOS


在iOS应用程序中,我需要用RSA算法加密NSString,我知道公共模数和指数键。在Android端,他们使用弹跳城堡API进行RSA加密。有人能帮助我如何加密吗?我如何用这些公共模数和指数键加密NSString,因为可以生成与Android相似的加密。我看了许多可用的源代码,但无法生成正确的加密。任何帮助都将不胜感激。我拥有的模数键是“117130940722358865944076735715016871148960803304334901248996815419815052552875336322790410991392433604701394608500231884113911915168625416296669114728862690539451024021812353340986348428958506523689933432584403548435474622224828221548841371083486321081622447517054022904372023020885356296462823306439795173749”指数是“65537”请帮我用RSA加密加密NSString。


共2个答案

匿名用户

在iOS,你可能需要在没有像OpenSSL这样的额外库的情况下工作。但是要做到这一点,你必须有某种“大数字”库。我没有使用iOS,但是搜索给出了“巨大数字”库,这里讨论:在iOS中存储和执行巨大数字的操作。有了这个库,你只需要RSA公式。快速搜索给出了这篇文章http://www.linuxjournal.com/article/6695,你不需要所有的,只要向下滚动提到ModExp——当你有可用的密钥和模数时,这是一个加密消息的操作。

匿名用户

您可以为此使用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);

注意出口合规,但在iPhone应用程序中使用SSL-出口合规

您可能会更好地尝试让Common Crypto等效于工作