IOS中怎么做RSA加密算法

发布网友 发布时间:2022-04-20 17:33

我来回答

2个回答

热心网友 时间:2023-10-03 15:02

RSA加密以及解密实现步骤:

1、使用openssl生成密匙对。

代码如下:(代码源于github开源社区)

#!/usr/bin/env bash  
echo "Generating RSA key pair ..."  
echo "1024 RSA key: private_key.pem"  
openssl genrsa -out private_key.pem 1024  
  
echo "create certification require file: rsaCertReq.csr"  
openssl req -new -key private_key.pem -out rsaCertReq.csr  
  
echo "create certification using x509: rsaCert.crt"  
openssl x509 -req -days 3650 -in rsaCertReq.csr -signkey private_key.pem -out rsaCert.crt  
  
echo "create public_key.der For IOS"  
openssl x509 -outform der -in rsaCert.crt -out public_key.der  
  
echo "create private_key.p12 For IOS. Please remember your password. The password will be used in iOS."  
openssl pkcs12 -export -out private_key.p12 -inkey private_key.pem -in rsaCert.crt  
  
echo "create rsa_public_key.pem For Java"  
openssl rsa -in private_key.pem -out rsa_public_key.pem -pubout  
echo "create pkcs8_private_key.pem For Java"  
openssl pkcs8 -topk8 -in private_key.pem -out pkcs8_private_key.pem -nocrypt  
  
echo "finished."

2、加载证书后即可进行加密算法。

代码:

RSAEncryptor *rsa = [[RSAEncryptor alloc] init];  
  
    NSLog(@"encryptor using rsa");  
    NSString *publicKeyPath = [[NSBundle mainBundle] pathForResource:@"public_key" ofType:@"der"];  
    NSLog(@"public key: %@", publicKeyPath);  
    [rsa loadPublicKeyFromFile:publicKeyPath];  
  
    NSString *securityText = @"hello ~";  
    NSString *encryptedString = [rsa rsaEncryptString:securityText];  
    NSLog(@"encrypted data: %@", encryptedString);

对应解密代码:

NSLog(@"decryptor using rsa");  
    [rsa loadPrivateKeyFromFile:[[NSBundle mainBundle] pathForResource:@"private_key" ofType:@"p12"] password:@"123456"];  
    NSString *decryptedString = [rsa rsaDecryptString:encryptedString];  
    NSLog(@"decrypted data: %@", decryptedString);

RSA基本原理:

RSA使用"秘匙对"对数据进行加密解密.在加密解密数据前,需要先生成公钥(public key)和私钥(private key)。

公钥(public key): 用于加密数据. 用于公开, 一般存放在数据提供方, 例如iOS客户端。

私钥(private key): 用于解密数据. 必须保密, 私钥泄露会造成安全问题。

热心网友 时间:2023-10-03 15:02

OPENSSL库

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com