AES、RSA加解密以及签名和验证

最近公司项目启动,针对登录模拟auth2.0模式,需要用到AES加解密,RSA私钥签名,公钥验签,RSA加解密等功能,对AES RSA这2块进行了综合整理了一下。

AES 后台那边要求是 CBC模式,并且用0x00填充模式,不多说上代码:

AES、RSA加解密以及签名和验证_第1张图片
AES、RSA加解密以及签名和验证_第2张图片

代码里设置密码跟iv偏移量一样,因为如果服务端的密码包含特殊字符的话,客户端这边解析出来的数据开头部分是乱码。

//初始密钥长度

size_t const kKeySize = kCCKeySizeAES128; 代表是AES128位进行加解密。

下面说谁RSA加解密,由于架构设计需要用户每次登录的RSA公私钥都不一样,这就要求前端每次登录的时候动态生成一对公私钥,用系统的API是可以获取到公私钥,但是我们需要把公私钥转换成字符串,这样系统API就不能满足我们的要求,我这边用openssl来动态生成RSA公私钥,可以参照支付宝公私钥匙加密和签名。

下面上RSA加解密:

AES、RSA加解密以及签名和验证_第3张图片

RSA私钥签名和公钥验证:

AES、RSA加解密以及签名和验证_第4张图片
AES、RSA加解密以及签名和验证_第5张图片

写的有点乱,下面给整个的Demo。

github.com/mymirror/encry

你可能感兴趣的:(AES、RSA加解密以及签名和验证)