1. 简介

   openssl  rsa.h 提供了密码学中公钥加密体系的一些接口,

   本文主要讨论利用rsa.h接口开发以下功能

  •      公钥私钥的生成
  •      公钥加密,私钥解密
  •      私钥加密,公钥解密
  •      签名:私钥签名
  •      验证签名:公钥验签

2. 生成公钥私钥对

    主要接口,

/* Deprecated version */
DEPRECATEDIN_0_9_8(RSA *RSA_generate_key(int bits, unsigned long e, void
                                         (*callback) (int, int, void *),
                                         void *cb_arg))

/* New version */
int RSA_generate_key_ex(RSA *rsa, int bits, BIGNUM *e, BN_GENCB *cb);

  接口调用需要先生成一个大数,如下生成密钥对示例

    //生成密钥对
    RSA *r = RSA_new();
    int bits = 512;
    BIGNUM *e = BN_new();
    BN_set_word(e, 65537);
    RSA_generate_key_ex(r, bits, e, NULL);
    //打印密钥
    RSA_print_fp(stdout, r, 0);

 打印的密钥对结果:

Private-Key: (512 bit)
modulus:
    00:c0:53:6c:46:57:ed:4e:33:bb:71:ec:be:d6:21:
    78:bf:9b:be:4f:8b:fb:32:ae:f2:83:9c:e7:b8:63:
    a2:34:9c:98:cc:4a:a2:17:1d:31:03:c8:f6:e0:13:
    3a:29:40:c8:1a:d4:b7:88:38:07:4c:3b:2a:01:0b:
    17:45:36:4f:f9
publicExponent: 65537 (0x10001)
privateExponent:
    00:8f:59:9e:ca:8f:9f:01:3a:ed:eb:ec:5a:11:a0:
    c1:2f:90:16:39:94:4c:97:6a:6e:b8:4a:ab:2c:74:
    96:e2:3e:c8:aa:34:bb:99:9e:e5:60:86:b4:8f:55:
    49:80:dc:26:06:74:13:64:49:ac:31:f8:fe:4d:80:
    e1:e2:bf:fd:41
prime1:
    00:fd:95:4d:f0:25:a0:87:5e:d1:c9:0e:b8:96:f9:
    ce:0a:ef:59:e7:a4:57:49:d8:fd:dd:e6:c4:59:24:
    dd:e6:33
prime2:
    00:c2:28:a9:7b:c8:98:97:33:32:f0:52:9a:26:a2:
    0b:50:3b:86:c0:55:6d:c6:c7:d1:a1:43:1d:d3:7d:
    53:cd:23
exponent1:
    6c:80:d8:2a:6b:4f:36:dd:21:92:90:13:f7:b5:c7:
    ad:f2:20:5b:f7:7b:ca:03:69:0c:eb:d3:13:f9:ac:
    60:f5
exponent2:
    55:44:e2:5a:18:98:db:1e:83:2a:84:3c:6a:e7:13:
    ac:e2:d7:a5:34:5f:87:c3:4d:cf:52:d8:90:7f:24:
    04:9d
coefficient:
    00:d7:0d:9b:e8:2f:3c:00:86:00:a0:b2:8b:00:1d:
    e2:b9:0f:9f:ca:b2:75:84:ea:c8:9d:5e:78:e5:e3:
    92:46:aa
View Code

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-07-05
  • 2022-02-20
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-12-03
  • 2021-12-15
  • 2021-08-05
  • 2021-08-18
  • 2021-10-19
  • 2021-10-16
相关资源
相似解决方案