web-dev-qa-db-ja.com

いたるところでhmac.compare_time関数が欠落しているため、不快な暗号化解除の警告

私のプロジェクトの1つがどこでも、すべての実行の先頭で、少なくとも1回これを印刷し始めるまで、物事は順調に実行されていました。

_local/lib/python2.7/site-packages/cryptography/hazmat/primitives/constant_time.py:26: CryptographyDeprecationWarning: Support for your Python version is deprecated. The next version of cryptography will remove support. Please upgrade to a 2.7.x release that supports hmac.compare_digest as soon as possible.
_

なぜそれが始まったのか、それがアプリケーション/ツールの出力を混乱させているのか、特に他のツールがそれをキャプチャして消費しているときはわかりません。これまでの多くの困難と同様に、それはurllibに関連していること、そして関連によりrequestsに関連していることはかなり確信しています。さらに悪いことに、非常に多くのプロジェクトと相互依存関係があるため、warnings.filterwarnings()への呼び出しですべてのインポートとブランチを更新して警告を抑制することはできません。

Python 2.7.6。どうやらこれは2.7.7で消えます。ただ、私はしない警告を見る2.7.6のシステムをいくつか持っています。 。したがって、あるバージョンで何かが無効になっている場合と無効になっていない場合があり、誤って別のバージョンに置き換えた可能性があります。

私のUbuntu、Python、urllib、リクエスト(セキュリティオプション付き)、暗号化、およびhmacはすべて、警告を出力するシステムと表示しないシステムの同一バージョン/ビルドです。

関連する警告やアナウンスはオンラインではないようで、関連するプロジェクトはこの時点で静的/安定しているようです(「hmac」はPIPを介してインストールできますが、8年で変更されていません)。

6
Dustin Oprea

私はかなり長い間このエラーを見つけました。私の環境では、Pythonを2.7.6よりも高いバージョンにアップグレードするのは苦痛でした。pipを使用して暗号化モジュールをダウングレードするのがより簡単な解決策でした。

pip2.7 install cryptography==2.2.2

最善の解決策は、pythonバージョン

24
mbenhalima

この答えはPython3用です

Paramikoを使用中に答えを探してここに来ました。まだ簡単な答えを探している人のために。 Paramikoをインポートする前に、次のコード行でこれらのCryptographyDeprecationWarningを抑制しました。

import warnings 
warnings.filterwarnings(action='ignore',module='.*paramiko.*')

これが役立つことを願っています

3
Vic Olvera

簡単なrequests.get呼び出しに対してこの警告を受け取り始めました。この警告は、モジュールcryptography.hazmat.primitives.constant_timeがロードされたときに出力されるため、通常はPythonプログラムごとに1回だけ表示されます。何度も表示される場合は、[ユーティリティ]などのPythonプログラムが複数回実行されているためである必要があります。そのプログラムを特定し、以下のコードをメインエントリポイントに追加するだけです。

import cryptography
from cryptography import utils
with warnings.catch_warnings():
    warnings.simplefilter('ignore', cryptography.utils.DeprecatedIn23)
    import cryptography.hazmat.primitives.constant_time
2
haridsv

Python3のみ:

明らかに Paramikoの更新 これは私のために働いて、私が経験していた同様の問題/症状を解決します:

pip3 install --upgrade paramiko

これにより、私のシステムにparamiko 2.6.0がインストールされ、2.4.2が置き換えられました。

$ pip3 install --upgrade paramiko
[...]
Installing collected packages: paramiko
  Found existing installation: paramiko 2.4.2
    Uninstalling paramiko-2.4.2:
      Successfully uninstalled paramiko-2.4.2
Successfully installed paramiko-2.6.0
$

私のPython2環境は台無しになっているようです ですので、Python2でこれをテストすることはできません。

1
Johnny Utahh

Pip2.7 install cryptography == 2.2.2をインストールすると、エラーが引き続き発生する可能性があります。あなたも必要だと思うSudo pip2.7 install --upgrade pip麻生、19/5/5現在、最新の暗号化方式は2.6.1のようです。

0
phydroxide