背景: 生成私钥、公钥 --》

生成AES-key seed[32], iv[16] --》

公钥加密ASE-key, IV,传给Server --》

Server用私钥解密,得到AES-key,IV --》

Server私钥加密签名SHA1, 传给Client --》

Client用公钥解密,验证签名--》

之后的数据全都用AES加密,不过IV按照一定规定可能会变化,不过解密放要能知道加密用的IV.

1.openssl 工具生成公钥、私钥

2.Client准备数据,加密,发给Server

Input: 公钥、AES-key, IV

char* rsa_publibckey_path = "/xx/rsa_public_key.pem"

fp=fopen(rsa_publibckey_path, "r");

RSA* pPubRsa = PEM_read_RSA_PUBKEY(fp,NULL,NULL,NULL);

IV会有规律的变化

3. 解析数据,得到AES-Key, IV, 对AES-key用SHA1签名并发给Clienty验证

05-11 22:09