python 使用openssl时,遇到ValueError: unsupported hash type sha1异常等问题

背景

最近在新的环境构建自动化测试用例的时候,遇到如下的python问题,当前的python环境为python2.7环境。

Python 2.7 已于 2020 年 1 月 1 日停止官方支持

bash 复制代码
pyenv/versions/2.7.6/lib/python2.7/hashlib.py", line 91, in __get_builtin_constructor
    raise ValueError('unsupported hash type ' + name)
ValueError: unsupported hash type md5

pyenv/versions/2.7.6/lib/python2.7/hashlib.py", line 91, in __get_builtin_constructor
    raise ValueError('unsupported hash type ' + name)
ValueError: unsupported hash type sha1

pyenv/versions/2.7.6/lib/python2.7/hashlib.py", line 91, in __get_builtin_constructor
    raise ValueError('unsupported hash type ' + name)
ValueError: unsupported hash type sha224

pyenv/versions/2.7.6/lib/python2.7/hashlib.py", line 91, in __get_builtin_constructor
    raise ValueError('unsupported hash type ' + name)
ValueError: unsupported hash type sha256
...

分析

md5 和 sha算法都来自于openssl库,检查系统是不是安装了相关的rpm包,看系统已经安装,但是使用的是 OpenSSL 1.1.1 以及以后的版本。

python2.7在使用openssl 1.1.1版本时存在问题,故不能正常运行。旧版中

Python 的 hashlib 模块会为每个支持的哈希算法(如 md5, sha1, sha256)动态生成一个名为 openssl 的 C 函数绑定,

这些函数是直接调用 OpenSSL 底层的 SHA256_Init/Update/Final 等 API。

OpenSSL 1.1.0+ 引入了"EVP"统一接口,废弃了旧的直接算法函数,导致这些函数不能直接使用,故报错。

解决方法

安装兼容 OpenSSL 1.0 的兼容包

bash 复制代码
 yum install compat-openssl10
 yum install ncurses-compat-libs
相关推荐
深蓝AI17 分钟前
Python 缓存击穿实测:16 个并发请求如何只回源 1 次
python
benchmark_cc21 分钟前
用 00700.HK 做港股行情清洗:字段核对、校验与个人量化开发实践
python·数据分析·pandas·量化交易·股票数据·quantdash
zh路西法1 小时前
【PACE】面向永磁同步电机PMSM 执行器的参数辨识与能耗感知强化学习 Sim-to-Real
python·cma-es·pmsm·sim-to-real·issac·pace
后台模板学习2 小时前
大模型 Prompt 工程在电商订单系统中的踩坑记录
java·python·prompt
2601_967987372 小时前
如何运行 Python 代码
python·最佳实践·脚本文件·代码运行·交互式环境
WiKiLeaks_successor2 小时前
重构Time库的抽象设计
python·重构
AI源码2 小时前
基于 Python 的短视频用户行为分析系统
开发语言·python
第九序言T2 小时前
数据分析岗 Pandas 面试题 20 道(上):概念与读代码
python·数据分析·pandas·数据处理
Dmz丶2 小时前
前端转 AI 100 天 Day 37:Few-shot 与 CoT——让模型学会“推理”
python
孟健3 小时前
我用Grok Bot本地剪口播视频,3段提示词搞定气口切除、字幕与封面
人工智能·python·aigc