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.pem3 最后生成两个证书: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开发

发表评论

电子邮件地址不会被公开。 必填项已用*标注