【Python】使用Python调用OpenSSL进行RSA密钥对生成

OpenSSL是一个比较常用的加解密库,在Linux的基础软件包中也都有,所以用起来比较方便。但是,OpenSSL没有提供Python的接口,只有C的接口,不过没关系,Python有一个ctypes的模块,可以实现调用C语言写的动态库。下面,我就以使用OpenSSL为例讲下如何使用Python调用OpenSSL来进行RSA密钥对生成。

本文示例代码使用Python 3.9.2和OpenSSL 1.1.1k完成验证。

使用Python的ctypes调用C语言写的动态库需要三步:

使用cdll.LoadLibrary加载动态库

设置函数参数和返回值类型

调用C语言动态库中的函数

第二步设置函数参数和范围值类型是因为Python和C语言的基础数据类型是有差异的,将Python的类型传递给C语言的函数是需要做转换,设置完类型后,Python就可以帮助你做类型转换,转换为C语言支持的数据类型。

了解完如何使用Python调用C语言的动态库,我们再了解下OpenSSL进行RSA密钥对生成、加解密和签名验签的一些函数。

首先是RSA_new和RSA_free这两个函数,这两个函数是为了生成和释放RSA类型的,函数原型如下:

RSA *RSA_new(void);

void RSA_free(RSA *rsa);

然后是OpenSSL大整数相关的两个函数BN_new和BN_free,用来初始化和释放大整数类型的,函数原型如下:

BIGNUM *BN_new(void);

void BN_free(BIGNUM *a);

相关推荐

  1. Python使用Python调用OpenSSL进行RSA生成

    2024-01-10 18:04:05       36 阅读
  2. 【Linux】linux下OpenSSLRSA生成

    2024-01-10 18:04:05       33 阅读
  3. OpenSSL生成哈希

    2024-01-10 18:04:05       36 阅读
  4. Mac环境简化RSA生成命令

    2024-01-10 18:04:05       12 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-10 18:04:05       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-10 18:04:05       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-10 18:04:05       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-10 18:04:05       18 阅读

热门阅读

  1. 【Linux】linux下OpenSSL的RSA密钥生成

    2024-01-10 18:04:05       33 阅读
  2. C++牛客知识点3

    2024-01-10 18:04:05       36 阅读
  3. Msql 8.0.3X my.cnf配置字典查询

    2024-01-10 18:04:05       31 阅读
  4. sql 修改update,删除delete语句

    2024-01-10 18:04:05       29 阅读
  5. 848. 有向图的拓扑序列(拓扑排序模板题)

    2024-01-10 18:04:05       38 阅读
  6. 连续整数相加C++

    2024-01-10 18:04:05       39 阅读