RSA加密

 

RSA是一种非对称加密算法,使用”密钥对”对数据进行加密解密

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

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

通过openssl获取密钥对。


密钥对

 

MAC自带openssl,三句命令行生成私钥公钥。

1、首先命令行中输入openssl,以打开openssl,接着三句命令。

2、第一句命令生成私钥。genrsa -out rsa_private_key.pem 1024

3、第二句命令把RSA私钥转换成PKCS8格式,密码可为空。pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM –nocrypt

4、第三句命令生成公钥。rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem

3

最后生成两个证书:rsa_private_key.pem,rsa_public_key.pem。


iOS中加密

 

1、podfile中引入OpenSSL:

2、项目中导入Security.framework

3、下载RSAUtil:http://wgh.me/wp-content/uploads/2015/08/RSAUtil.zip,已经将RSA加密解密封装好,下载导入到项目中。将之前生成的私钥、公钥填入到publicKey、privateKey中。

4、两句话加密解密

结果如下:

4


AES加密

 

AES是一种对称加密算法,可以使用128、192 和 256 位比特(32字节)密钥。对称加密不同于非对称加密,使用相同的密钥加密和解密数据。

iOS与PHP进行AES加密解密的时候,PHP端设置的初始化向量iv不同,会影响加密结果。


iOS端

 

1、iOS中可以使用AESCrypt,在GitHub中的下载地址:https://github.com/Gurpartap/AESCrypt-ObjC

下载后,将以下八个文件,导入项目中

1

2、加密解密两句话搞定

日志如下:

2


PHP端

iv设置成‘00000000000000000000000000000000’。

 

分类: iOS开发