美文网首页iOS Security
怎么在ios中应用“RSA的私钥加密或公钥加密算法”呢?

怎么在ios中应用“RSA的私钥加密或公钥加密算法”呢?

作者: 慧惠 | 来源:发表于2015-12-10 17:47 被阅读919次

RSA基本原理

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

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

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

iOS中的Security.framework提供了对RSA算法的支持.这种方式需要对密匙对进行处理, 根据public key生成证书, 通过private key生成p12格式的密匙.

除了Secruty.framework, 也可以 将openssl库编译到iOS工程中 , 这可以提供更灵活的使用方式.

一:客户端发送流程(公钥加密,私钥解密)

二:客户端接收流程(私钥加密,公钥解密)

1、使用openssl生成密钥对

Github Gist: https://gist.github.com/lvjian700/635368d6f1e421447680(参考链接)

#!/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."

提示:

1)在创建证书的时候, terminal会提示输入证书信息. 根据提示输入对应信息就OK.

2)在创建p12密匙时, 会提示输入密码, 此时的密码必须记住, 之后会用到.

3)如果上面指令有问题,请参考最新的openssl官方文档, 以官方的为准.

2、下载RSA-objc文件夹。

RSA-objc的下载链接:https://github.com/jslim89/RSA-objc,从RSA-objc的项目中取出RSA-objc文件夹

3、下载openssl library:

取出include、lib文件夹。下载链接:https://github.com/st3fan/ios-openssl

4、新建一个项目,将文件夹RSA-objc、include、lib拷贝到根目录下,如图:

5、设置环境变量:

设置“Header Search Paths” 的值为/Users/huangzhiming/Desktop/work/OpenSSL/OpenSSL/include  (绝对路径)

注意:设置“Header Search Paths” 的值时,$(PROJECT_DIR)/myRES/include(这么写是相对路径)

设置“Valid Architectures” 的值为 armv7/armv7s。如图:

6、代码编写

相关文章

  • RSA非对称加密算法

    RSA算法,经典非对称加密算法,通过生成公钥 私钥 进行加密解密 公钥加密 私钥解密 反之 私钥加密 公钥...

  • Linux配置免密登录

    1、公钥-私钥对: 称为非对称加密方式 2、生成公钥-私钥对命令: 参数:-t:加密算法 rsa:不对称加密算法...

  • RSA加密

    RSA基本原理: RSA加密算法是基于一个密钥对的,分为公钥和私钥,一般情况公钥加密,私钥解密,但也可私钥加密,公...

  • iOS RSA加签和验签(SHA1WithRSA)

    RSA 简介 RSA是一种非对称加密算法,使用公钥加密就可以使用私钥解密,使用私钥加密就可以使用公钥解密。RSA公...

  • # RSA 公钥加密算法

    # RSA 公钥加密算法 # RSA 公钥加密算法

  • iOS RSA加签和验签

    RSA是一种非对称加密算法,使用公钥加密就可以使用私钥解密,使用私钥加密就可以使用公钥解密。RSA公钥对外公开,私...

  • 家雀

    点赞!!!iOS RSA加签和验签RSA是一种非对称加密算法,使用公钥加密就可以使用私钥解密,使用私钥加密就可以使...

  • 怎么在ios中应用“RSA的私钥加密或公钥加密算法”呢?

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

  • 20:RSA加密算法

    RSA是非对称加密算法,也就是说,它提供了加密的私钥和解密的公钥(反过来说也对,加密的公钥和解密的私钥)。 RSA...

  • 加密相关

    公钥加密 私钥解密 ,私钥加密,公钥验证(签名) HTTPS -- AFSecurityPolicy RSA ...

网友评论

  • 风已逝云:include、lib两个文件找不到,请作者指教
  • 慧惠:它不是支持arm64吗??
  • tom510230:如果要支持arm64要怎么搞呢?

本文标题:怎么在ios中应用“RSA的私钥加密或公钥加密算法”呢?

本文链接:https://www.haomeiwen.com/subject/exlyhttx.html