RSA_new
创建RSA对象
RSA_public_encrypt
用公钥解密
RSA_private_decrypt
用私钥加密
示例
RSA* rsa;
int bits =
1024;
BIGNUM *big_num;
unsigned char *input_string, *encrypt_string, *decrypt_string;
input_string = (
unsigned char*)
"123456";
rsa = RSA_new();
big_num = BN_new();
BN_set_word(big_num, RSA_3);
if(RSA_generate_key_ex(rsa, bits, big_num, NULL) !=
1){
printf(
"函数RSA_generate_key_ex返回失败");
return 1;
}
encrypt_string = (
unsigned char*)
calloc(RSA_size(rsa),
sizeof(
unsigned char));
int encrypt_size = RSA_public_encrypt(
strlen((
char*)input_string),
input_string, encrypt_string, rsa, RSA_PKCS1_OAEP_PADDING);
decrypt_string = (
unsigned char*)
calloc(RSA_size(rsa),
sizeof(
unsigned char));
int decrypt_size = RSA_private_decrypt(encrypt_size,
encrypt_string, decrypt_string, rsa, RSA_PKCS1_OAEP_PADDING);
printf(
"encrypted string = ");
for (
int i=
0; i < encrypt_size; ++i) {
printf(
"%x%x", (encrypt_string[i] >>
4) &
0xf, encrypt_string[i] &
0xf);
}
printf(
"\n");
printf(
"decrypted string = %s\n", decrypt_string);
RSA_free(rsa);
free(encrypt_string);
free(decrypt_string);
return 0;
转载请注明原文地址: https://ju.6miu.com/read-21170.html