iOS进阶

密码学:RSA

2017-07-20  本文已影响4人  泰克2008

RSA算法有两个作用一个是加密一个是数字签名

数字签名
发送方:
    1. "报文" HASH 得到 "报文摘要"
    2. "报文摘要" 用公钥加密(数字签名) + 报文 --> 发送给接收方
接收方:
    1. "报文" HASH,得到 "报文摘要"
    2. "数字签名" 用私钥解密,判断是否与 "报文摘要" 相同
程序开发证书生成
1. 生成私钥:
   openssl genrsa -out ca.key 1024
    
2. 创建证书请求:
    openssl req -new -key ca.key -out rsacert.csr
    
3. 生成证书并签名,有效期10年:
    openssl x509 -req -days 3650 -in rsacert.csr -signkey ca.key -out rsacert.crt
    
4. 转换格式,将 PEM 格式文件转换成 DER 格式:
    openssl x509 -outform der -in rsacert.crt -out rsacert.der
    
5. 导入P12文件:
    openssl pkcs12 -export -out p.p12 -inkey ca.key -in rsacert.crt
iOS 中的相关函数
* SecKeyEncrypt - 使用公钥对数据加密
* SecKeyDecrypt - 使用私钥对数据解密
* SecKeyRawVerify - 使用公钥对数字签名进行验证
* SecKeyRawSign - 使用私钥生成数字签名
注意
* iOS中不能使用PEM格式的证书
* OpenSSL默认生成的都是PEM格式的证书
上一篇下一篇

猜你喜欢

热点阅读