問題タブ [pycrypto]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
5353 参照

python - PyCrypto: DES3 パスワードで保護された RSA キーを生成する

次のコマンドを使用して、DES3 を使用してパスワードで保護された RSA キーを作成できました (まあ...私はこの暗号化の世界に非常に慣れていないためだと思います)。

可能であれば、PyCrypto を使用して、Python スクリプト内でそれを実行したいと考えています。このメッセージを見たことがありますが、これは PyCrypto を使用してそれを行うことを思いとどまらせているようです。今でもそうですか?

もちろん、いつでも を呼び出しos.executeて上記のコマンドを実行することはできますが、それは「不正行為」だと考えています:-) . 私は PyCrypto を学ぶためにこれをやっています。

前もって感謝します。

0 投票する
2 に答える
2000 参照

python - Pythonでのデータの暗号化-

私はクライアントサーバーモデル(クライアントはデータを収集し、RESTを介してサーバーに送信するサーバー上のスクリプトです)を作成しており、送信されるデータを暗号化したいと考えています。

現在、特定のタイムゾーンから時間を追加するランダムキーを生成する関数があります-IP-HOSTNAME-YEAR-MONTH-DAY-HOUR-(MINUTE / 2)

キーの各部分は、SHA256を介して3,000〜10,000回実行され、最後に128ビットキーが生成されます。全体として、スクリプトの完了には約0.8〜1秒かかります。

データはAESを介して暗号化され、キーに128ビットキーの一部を使用します。iv。

サーバースクリプトは、接続をリッスンし、IPアドレスがリストされているかどうかを確認してから、データの復号化に進みます(同じ方法を使用してキーとivを生成します)

私の質問は:-私は車輪を再発明していますか?-データ暗号化用の動的で時間制限のあるキーを生成するためのより良い方法はありますか?

私の目標は、60〜120秒に制限されたキーを取得してから破棄し、複数のサイクルを使用してキーを生成することでした(TruecryptのPythonの方法を読み取ったおかげで)。そのため、データがキャッチされても復号化されません。 "簡単に" 。また、サーバーモデルには、暗号化された暗号化を暗号化するために使用するSSL証明書があります。

私は、AES暗号化に使用される各クライアントスクリプト(RSA生成)に静的キーを与えることを考えていました。

あなたの正直な答えとこれを改善するための新しいアイデアに感謝します。

0 投票する
3 に答える
1891 参照

python - PyCrypto: RSA 非対称鍵で中国語の文字をエンコードする

PyCrypto を使用して一部の文字列を暗号化/復号化しようとしていますが、漢字に問題があります。

「ニハオ」(こんにちは)を暗号化しようとすると...

...エラーが発生し続けます:

いろいろ組み合わせてみましたが、

運がなければ。

エンコードする前にいつでも base64 を使用しようとすることができると思いますが、それを「最後のリソース」として残したいと思います...これを行うためのより「エレガントな」方法を望んでいました。

誰かが同じ問題に遭遇しましたか? ヒントをいただければ幸いです。前もって感謝します。

0 投票する
2 に答える
1802 参照

.net - .NET RSACryptoServiceProvider での PyCrypto 署名メッセージと署名の検証

PyCrypto エンジンを使用して Google API で実行される Web サイトを使用する署名検証システムを作成しようとしています。署名を生成するプログラムは非常に単純です。

キー「キー」は次によって提供されます。

署名は、「A12D.......」のような 16 進文字列として返されます。

.NET プログラムは次のとおりです。

しかし、それはうまくいきません!!! どうして??

Pycrypto と .NET は同じパラメーター (モジュラス、指数、d、p、q) を受け取ります。

0 投票する
3 に答える
5926 参照

python - PyCrypto: RSA と PKCS#1 を使用して文字列を 2 回暗号化する

こんにちは、みんな。

PyCryptoで二重のRSA/PKCS#1暗号化が可能かどうか疑問に思っていました。

独自の RSA キー (opensslサーバーのインストール時にコマンドで生成される) を持つサーバーと、サーバーのキーの公開部分を要求できるクライアントがあります。また、そのクライアントはサーバーに別の RSA キー (またはキーペア) を生成するように依頼できます。その場合、サーバーは秘密 (または「全体」の RSA キー) も保持し、そのキーの公開部分をクライアントに送信します。

私は RSA/PKCS と AES 暗号化をいじっています。1 つの RSA キーのみで正常に暗号化できるテスト Python ファイルを作成しました。それが行うことは、対称AESシステム(「オンザフライ」で生成されたランダムキーを使用する)でデータを暗号化し、RSA / PKCS#1システムを使用してAESに使用されるパスワードを暗号化し、それを結果に入れることです送信済:

ご覧のとおり、AES パスワードはサーバーの RSA キーで暗号化されています。ここで、私はさらに偏執的になり、すでに暗号化されたパスワードをクライアントの公開鍵で暗号化したいので、「暗号化」メソッドは次のようになります。

しかし、キーを再暗号化しようとすると、ValueError("Plaintext too large")例外が発生します。これは理にかなっています (少なくとも、暗号化についてほとんど何も知らない人にとっては理にかなっています) PKCS はパディングを追加するためthisMessagePassword、サーバーの公開鍵で " " を暗号化すると、256 バイトの文字列が得られますが、これは 2 番目の PKCS には長すぎます。暗号化 (私はいくつかの「手動テスト」を行ってきましたが、制限は 214 バイトのようです... つまり、例外をスローしない最後の値です)。

おそらく奇妙な構造であり、サーバーの公開鍵を暗号化に使用してクライアントの鍵で署名する方が理にかなっていることは承知していますが、暗号化を少し試して、それらがどのように機能するかを理解しようとしています。仕事とその理由。そのため、ヒントをいただければ幸いです。

前もって感謝します!

0 投票する
1 に答える
1480 参照

python - Pycrypto インポートキー

pycrypto 公開鍵暗号化で問題が発生しています。秘密鍵がある場合は暗号化が正常に機能しますが、公開鍵の暗号化だけをインポートすると失敗します。

[85]: インポート Crypto.PublicKey.RSA

[86]: キー = Crypto.PublicKey.RSA.importKey(open('/etc/pki/server.pub', 'r').read())

[87]: キー。

[87]: key.encrypt('cheese', 32)

Out[87]: ('チーズ',)

最後に、暗号化されていないように見えることを確認しました。pycrypto api で不足しているものを確認できる人はいますか?

0 投票する
2 に答える
1117 参照

c# - 作業中の C# コードから Python で RSA 署名を生成しようとしています

他人のコードを使用して、xbox 360 セーブ ファイルの検証に使用される RSA 署名を生成しています。コードはファイルから必要な値を読み取り、署名を正しく生成します。

コードは次のとおりです。

にあるもので終わろうとしていxrsaますが、Pythonを使用しています。私はpycryptoをインストールし、ドキュメントを見ていますが、まだ明らかなものがありません. まず、Crypto.PublicKey の RSA.construct は 6 つのパラメーターしか取りませんが、指数 1 と 2 (DP と DQ) は取りません。また、入力は long である必要があります。C# コードでは、値の長さは 4 バイトではなく、128 バイトと 64 バイトでした。

これは痛々しいほど明白に思えるかもしれませんが、何をする必要があるのか​​ わかりません。

私はPython 2.7.3で作業しています

編集: また、暗号化される「メッセージ」は、ファイルの 0x118 バイトの sha1 ハッシュであり、メタデータとファイルの他の部分のハッシュが含まれています。

編集: どうもありがとう、私はそれが機能することに近づいていると感じています。まだ C# の署名と一致しません。C# では、署名形式は SHA1 として設定されています。これは何をしているのですか? Python で実行できますか?

0 投票する
1 に答える
1556 参照

python - PyCrypto が不正な署名を生成する

以下のコードが示すように、PyCrypto に大きな問題があります。1 つの問題は、テスト ケースが繰り返し失敗するわけではなく、異なるキーを使用する異なるプラットフォームで異なる原因があることです。

テスト ケースでは、Alice と Bob に 2 つのキー セットが提供されることに注意してください。1 つ目は OpenSSL によって生成され、2 つ目は PyCrypto によって生成されます (「代替キー」セクションのコメントを外してください)。

テスト ケースは単純なラウンド トリップです。

  1. アリスは対称鍵を生成し、データを暗号化します
  2. Alice は Bob の公開鍵で対称鍵を暗号化し、暗号化された鍵に彼女の秘密鍵で署名します (この単純なテスト ケースではハッシュは使用されません)。
  3. ボブはアリスの公開鍵で署名を検証し、秘密鍵で対称鍵を復号化します。
  4. Bob は、対称キーを使用してデータを復号化します。

以下は、いくつかのサンプル実行の結果です。

OpenSSL キーを使用する Linux の場合

PyCrypto キーを使用する Linux の場合

OpenSSL キーを使用する Windows の場合

PyCrypto キーを使用する Windows の場合

テストケースは次のとおりです。

PyCrypto がそのようなバスケットケースのように見える理由はありますか?

0 投票する
1 に答える
38158 参照

python - PEM + PKCS#1 形式の RSA 公開鍵を読み取る方法

PEM 形式の RSA 公開鍵 + PKCS#1 を持っています (推測):

Python で ASN1 エンコード バージョンの SHA1 ダイジェストを取得したいと考えています。最初のステップはこのキーを読み取ることですが、私は PyCrypto でそれを行うことができませんでした:

PyCryptoのドキュメントには、PEM + PKCS#1 がサポートされていると記載されているため、混乱しています。M2Crypto も試してみましたが、M2Crypto は PKCS#1 をサポートせず、X.509 のみをサポートしていることがわかりました。

0 投票する
1 に答える
3178 参照

python - Macでeasy_installまたはpipを使用してインストールできません

easy_install(およびpip)を使用してlxmlおよびpycryptoモジュールをインストールしようとしていますが、次のようなエラーメッセージが表示されます

blabla。。。

pycryptoもインストールしようとすると、同様の構文エラーが発生します。私はこの答えを試しましたが、無駄でした。setuptools-0.6c11-py2.6.eggとsetuptools-0.6c11-py2.7.eggを使用してPython2.6および2.7環境にセットアップしようとしましたが、同じ出力が得られました。

私はオンラインでたくさん検索しましたが、これに対する解決策を見つけることができません。

編集:私はmacbook pro2010のOSX10.7を使用しており、XCode4および3がインストールされています

上記のリンクのコマンドを試している間、argsを最新バージョンに置き換えたいと思います。

私は別の投稿を読んで、これも試しました

解決:

@jdiが提案したように、私は次のことをしました

私はまだオプション1と2の提案で問題に直面していたので、リンクからgccをインストールしました

次に、これ

またはこれは、動作します

pycryptoでも同じように機能しました