#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <openssl/bn.h>
#include <openssl/rsa.h>
#include <openssl/pem.h>
int main(int argc, char *argv[])
{
// 产生RSA密钥对
RSA *rsaKey = RSA_generate_key(1024, 65537, NULL, NULL);
int keySize = RSA_size(rsaKey);
char fData[]="aaabbbccdskjkfd";
char tData[128];
int flen = strlen(fData);
//flen = 15
int ret = RSA_public_encrypt(flen, (unsigned char *)fData, (unsigned char *)tData, rsaKey, RSA_PKCS1_PADDING);
//ret = 128
ret = RSA_private_decrypt(128, (unsigned char *)tData, (unsigned char *)fData, rsaKey, RSA_PKCS1_PADDING);
//ret = 15
RSA_free(rsaKey);
return 0;
}
VC6.0编译通过
RSA_generate_key产生密钥对
参数一:密钥长度是 1024bit (小于1024被认为是不安全的)
参数二:公开的加密指数,通常是一个奇数,一般为3, 17 or 65537
后两个参数,回调函数和回调函数的参数&#x