Skip to content
KitploitKITPLOIT
工具博客
Log in
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
python-ecdsa — 纯Python ECDSA 签名/验证和 ECDH 密钥协商 | Kitploit
工具/GitHubGitHub/tlsfuzzer/python-ecdsa
加密/解密工具密码学实用工具与框架身份验证学习与教育
GitHubtlsfuzzer/python-ecdsa

python-ecdsa

纯Python ECDSA 签名/验证和 ECDH 密钥协商

查看仓库
975342183个月前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Pure-Python ECDSA and ECDH

GitHub CI Documentation Status Coverage Status condition coverage mutation score CodeQL Latest Version Code style: black

这是一个易于使用的 ECC(椭圆曲线密码学)实现,支持 ECDSA(椭圆曲线数字签名算法)、EdDSA(爱德华曲线数字签名算法)和 ECDH(椭圆曲线 Diffie-Hellman),完全用纯 Python 实现,并以 MIT 许可证发布。使用此库,您可以快速创建密钥对(签名密钥和验证密钥)、对消息签名并验证签名。您还可以基于交换的公钥协商出共享密钥。密钥和签名都非常短,易于处理并集成到其他协议中。

注意:此库不应在生产环境中使用,详情请参阅 Security。

特性

此库为五种流行的 NIST“Suite B”GF(p)(素数域)曲线提供密钥生成、签名、验证和共享密钥派生功能,密钥长度分别为 192、224、256、384 和 521 位。这些曲线在 OpenSSL 工具(openssl ecparam -list_curves)中的“短名称”为:prime192v1、secp224r1、prime256v1、secp384r1 和 secp521r1。它还包含 Bitcoin 所使用的 256 位曲线 secp256k1。此外还支持 Brainpool 曲线从 160 到 512 位的常规(非扭曲)变体。这些曲线的“短名称”为:brainpoolP160r1、brainpoolP192r1、brainpoolP224r1、brainpoolP256r1、brainpoolP320r1、brainpoolP384r1、brainpoolP512r1。SEC 标准中的少量小曲线也被包含在内(主要用于加速库的测试),它们是:secp112r1、secp112r2、secp128r1 和 secp160r1。同时支持 Ed25519 和 Ed448 曲线的密钥生成、签名和验证。库中未包含其他曲线,但要添加对更多素数域曲线的支持并不困难。

依赖

此库仅使用 Python 和 'six' 包。它兼容 Python 2.6、2.7 和 3.6+。它还支持在 pypy 和 pypy3 等替代实现上运行。

如果安装了 gmpy2 或 gmpy,它们将被用于加速算术运算。它们中的任何一个都可以在本库安装后安装,python-ecdsa 会在启动时检测到它们的存在并自动使用。在 Python3 上,为了获得最佳性能,您应该优先选择 gmpy2。

要运行 OpenSSL 兼容性测试,'openssl' 工具必须位于您的 PATH 中。此版本已成功针对 OpenSSL 0.9.8o、1.0.0a、1.0.2f、1.1.1d 和 3.0.1(以及其他版本)进行了测试。

安装

此库可在 PyPI 上获取,建议使用 pip 安装:``` pip install ecdsa

如果需要更高的性能,并且使用原生代码没有问题,可以指定与 `gmpy2` 一起安装:```
pip install ecdsa[gmpy2]

或(较慢的旧版选项):``` pip install ecdsa[gmpy]

## 速度

下表展示了此库生成密钥对(`keygen`)、签名数据(`sign`)、验证这些签名(`verify`)、派生共享密钥(`ecdh`)以及在没有密钥特定预计算的情况下验证签名(`no PC verify`)所需的时间。
所有这些值均以秒为单位。
为方便起见,还提供了这些值的倒数:
每秒可生成的密钥数量(`keygen/s`)、每秒可生成的签名数量(`sign/s`)、每秒可验证的签名数量(`verify/s`)、每秒可派生的共享密钥数量(`ecdh/s`),以及每秒可在没有密钥特定预计算的情况下验证的签名数量(`no PC verify/s`)。原始签名的大小(通常是签名可编码的最小方式)也由 `siglen` 列提供。
使用 `tox -e speed` 可在您自己的计算机上生成此表。
在 Intel Core i7 4790K @ 4.0GHz 上,我获得了以下性能:```
                  siglen    keygen   keygen/s      sign     sign/s    verify   verify/s  no PC verify  no PC verify/s
        NIST192p:     48   0.00032s   3134.06   0.00033s   2985.53   0.00063s   1598.36       0.00129s         774.43
        NIST224p:     56   0.00040s   2469.24   0.00042s   2367.88   0.00081s   1233.41       0.00170s         586.66
        NIST256p:     64   0.00051s   1952.73   0.00054s   1867.80   0.00098s   1021.86       0.00212s         471.27
        NIST384p:     96   0.00107s    935.92   0.00111s    904.23   0.00203s    491.77       0.00446s         224.00
        NIST521p:    132   0.00210s    475.52   0.00215s    464.16   0.00398s    251.28       0.00874s         114.39
       SECP256k1:     64   0.00052s   1921.54   0.00054s   1847.49   0.00105s    948.68       0.00210s         477.01
 BRAINPOOLP160r1:     40   0.00025s   4003.88   0.00026s   3845.12   0.00053s   1893.93       0.00105s         949.92
 BRAINPOOLP192r1:     48   0.00033s   3043.97   0.00034s   2975.98   0.00063s   1581.50       0.00135s         742.29
 BRAINPOOLP224r1:     56   0.00041s   2436.44   0.00043s   2315.51   0.00078s   1278.49       0.00180s         556.16
 BRAINPOOLP256r1:     64   0.00053s   1892.49   0.00054s   1846.24   0.00114s    875.64       0.00229s         437.25
 BRAINPOOLP320r1:     80   0.00073s   1361.26   0.00076s   1309.25   0.00143s    699.29       0.00322s         310.49
 BRAINPOOLP384r1:     96   0.00107s    931.29   0.00111s    901.80   0.00230s    434.19       0.00476s         210.20
 BRAINPOOLP512r1:    128   0.00207s    483.41   0.00212s    471.42   0.00425s    235.43       0.00912s         109.61
       SECP112r1:     28   0.00015s   6672.53   0.00016s   6440.34   0.00031s   3265.41       0.00056s        1774.20
       SECP112r2:     28   0.00015s   6697.11   0.00015s   6479.98   0.00028s   3524.72       0.00058s        1716.16
       SECP128r1:     32   0.00018s   5497.65   0.00019s   5272.89   0.00036s   2747.39       0.00072s        1396.16
       SECP160r1:     42   0.00025s   3949.32   0.00026s   3894.45   0.00046s   2153.85       0.00102s         985.07
         Ed25519:     64   0.00076s   1324.48   0.00042s   2405.01   0.00109s    918.05       0.00344s         290.50
           Ed448:    114   0.00176s    569.53   0.00115s    870.94   0.00282s    355.04       0.01024s          97.69
下载工具