char *data_encrypy(char *data, char *PUB_KEY)

{

//对数据进行加密函数

char *encry_data;

RSA *p_rsa;

FILE *file;

int data_len, rsa_len;

if ((file = fopen(PUB_KEY, "r")) == NULL)

return NULL;

if ((p_rsa = PEM_read_RSA_PUBKEY(file,NULL,NULL,NULL)) == NULL)

return NULL;

data_len = strlen(data);

rsa_len = RSA_size(p_rsa);

encry_data = (char *)malloc(rsa_len+1);

memset(encry_data, 0, rsa_len+1);

if (RSA_public_encrypt(rsa_len, (unsigned char *)data,

(unsigned char *)encry_data, p_rsa, RSA_NO_PADDING)<</span>0)

return NULL;

RSA_free(p_rsa);

fclose(file);

return encry_data;

}

char *data_decrypy(char *data, char *SSL_KEY)

{

//对数据进行解密函数

char *decry_data;

RSA *p_rsa;

FILE *file;

int rsa_len;

if ((file = fopen(SSL_KEY, "r")) == NULL)

return NULL;

if ((p_rsa = PEM_read_RSAPrivateKey(file,NULL,NULL,NULL)) == NULL)

return NULL;

rsa_len = RSA_size(p_rsa);

decry_data = (char *)malloc(rsa_len+1);

memset(decry_data, 0, rsa_len+1);

if (RSA_private_decrypt(rsa_len, (unsigned char *)data, (unsigned char *)decry_data,

p_rsa, RSA_NO_PADDING) <</span> 0)

return NULL;

RSA_free(p_rsa);

fclose(file);

return decry_data;

}