Openssl库 - RSA

    xiaoxiao2021-03-25  94

    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

    最新回复(0)