問題タブ [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.
python - モジュラスとプライベート指数があります。RSA秘密鍵を作成してメッセージに署名する方法は?
私は暗号化とpycryptoの初心者です。
モジュラスn
とプライベート指数がありd
ます。いくつかのドキュメントを読んだ後に私が理解したことから、秘密鍵はとで構成されn
ていd
ます。
メッセージに署名する必要がありますが、を使用してそれを行う方法がわかりませんpycrypto
。RSA.construct()
メソッドはタプルを受け入れます。ただし、このメソッドに公開指数を追加で提供する必要がe
あります(これは私にはありません)。
これが私の質問です。e
メッセージに署名するために何らかの方法で計算する必要がありますか?
n
and d
(秘密鍵を構成する)を使用するだけでメッセージに署名できるはずです。私は正しいですか?でこれを行うことはできますpycrypto
か?
前もって感謝します。
python - 64 ビットの Windows 7 マシンに pycrypto をインストールするにはどうすればよいですか?
を使用して PyCrypto をインストールしようとしましpip
たが、vcvarsall.bat が必要であると不平を言いました。Visual Studio 2008ValueError: [u'path']
をインストールしましたが、からインストールしようとするとエラーが発生しpip
ます。
Voidspaceからビルド済みのバイナリをダウンロードしようとしましたが、32 ビット バージョンしかなく、マシンに正しくインストールされていないようです (成功したと表示されますが、python を実行して試してみるとimport Crypto
、ImportError: No module named Crypto
.
私は何をする必要がありますか?
python - PythonAESエンコーディング/デコーディング文字列とMySQLへの保存
Pyramid 1.3(Python 2.7)を使用し、MySQLにデータを保存するプロジェクトに取り組んでいます。メールアドレスのテーブルがあり、保存用に暗号化したいと思います。アプリケーションで暗号化しようとしていますが、復号化して表示します。私は完全なセキュリティを求めるつもりはありませんが、データベース自体が危険にさらされた場合にデータを十分に難読化することを主な目的としています。
私はAESでPyCryptoを使用しており、ここのいくつかの投稿と私が見つけたいくつかのWebチュートリアルをフォローしようとしています。私がこれまでに見つけた最も近いものはこの投稿であり、少なくともそれを暗号化することで機能しているようです。"7hBAQrWhJRnL9YdBGJfRErGFwGi3aC6noGzYTrGwAoQ="
私はそれに従い、データベースに保存されているようなものを取得します。しかし、復号化機能はこれでエラーを出し続けます:
Pythonに関するUnicodeプレゼンテーションに出くわしました。これは、Pythonをより理解するのに役立ちましたが、それでも同じエラーが発生し続けます。
エンコード、データベースへの保存、データベースからの引き出し、およびソースデータ文字列のデコードの方法に関する簡単なチュートリアルはありますか?
データベース列に特定の照合が必要ですか?フィールドは特定のタイプである必要がありますか?これまで、文字列を格納していると仮定して、デフォルトの照合を使用し、それをVARCHARに設定してきました。互換性のないタイプなどでエンコーディングの問題が発生しているようですが、何かを変更する必要がある場所で頭が回転しています。
より良いポインタまたは私が提供できる他のものはありますか?コードを表示することはできますが、基本的には上記のリンクのコピーです...変更しすぎる前に、概念実証が機能するようにしようとしていました。
編集:いくつかのサンプルソース... MySQLでは、テーブルはid(int)client_id(int)emailaddress varchar(100)utf8mb4_general_ci(私は照合をいじっていますが、それがどうあるべきかわかりません!)
Python:
clientemailsは、上の表のメールのリストです。コメントを外すとエラーが発生します。
私はそれを機能させるために最初のアイテムをデコードしようとしていましたが、それは今それを適合させているように見える部分です....
java - javax.crypto でエンコードされた文字列の Python でのフグの復号化
https://raw.github.com/usefulfor/usefulfor/master/security/JBoss.javaにあるコードを使用して、次のことを行いました。
ただし、Pythonでpycryptoを使用して文字列「27038292d345798947e2852756afcf0a」を復号化する方法を理解することはできません。私の理解では、Java コードは Blowfish を使用しており、「jaas is the way」というフレーズが暗号のキーとして使用されています。しかし、Pythonでこれを行う方法がわかりません。次の結果は、ほとんど印刷できないガベージになります。
何が欠けていますか?
ありがとう。
python - Windowsでpipを介してfastmath(gmpまたはmpir)を使用してPyCryptoを構築する
pipを介してWindowsにPyCryptoをインストールしましたが、GMPが見つからなかったため、Crypto.PublicKey._fastmathをビルドできませんでした。
voidspaceにバイナリバージョンがあることは知っていますが、PyCryptoの最新バージョンをビルドしたいと思います
python - Python 3 で AES と PyCrypto を使用してファイルを暗号化する
PyCrypto を使用して、CBC モード (Python 3.2.3 64 ビットおよび PyCrypto 2.6) で AES を使用してバイナリ ファイルを暗号化しています。次のコードを使用: http://eli.thegreenplace.net/2010/06/25/aes-encryption-of-files-in-python-with-pycrypto/
しかし、次のエラーが発生します: ValueError: IV は 16 バイト長でなければなりません。
コードは次のとおりです。
検索して実験してみましたが、うまくいかないようです。Python は私にとってかなり新しいものであり、暗号化も同様です。どんな助けでも大歓迎です。前もって感謝します。
google-app-engine - Google App Engine の dev_appserver.py に pycrypto をインポートすると IOError が返される
を使用して Google App Engine アプリをテストしようとしていますdev_appserver.py
が、実行すると(アクセスなし) トレースバックimport Crypto
から次のように抜粋されます。IOError
私は Mac OS X 10.7 を使用しており、Python 2.7 を使用する Google App Engine 1.6.6 を使用しています。
PyCryptoは Google App Engineでサポートされているため、開発サーバーで動作することを期待しています。
dev_appserver.py
外部ファイルの読み込みを妨げていることは承知しています。ただし、appengine/tools/dev_appserver_import_hook.py
必要なファイルがすべてホワイトリストに含まれているようです (例: _fastmath
)。
app.yaml
私が持っていることに注意してください
明らかであるが決定的な何かが欠けているようです。任意の考えをいただければ幸いです。
編集詳細については、https ://code.google.com/p/googleappengine/issues/detail?id=12129 を参照してください。
python - Google App Engine開発サーバーのPyCrypto「ImportError:名前blockalgoをインポートできません」
PyCryptoを使用してAESで文字列を暗号化する機能があります。単体テストでその関数を呼び出すと、すべてが正常に機能します。実稼働環境では、それも正常に機能します。ただし、GAE開発サーバーで関数を呼び出すと、「ImportError:名前blockalgoをインポートできません」というエラーがスローされます。Windows 7(64ビット)とMacOS10.5でテストしました。どちらも同じエラーになりました。Python2.7でGoogleAppEngineを使用しています。何が問題なのですか?
app.yaml
暗号化機能:
python - Google App Engine + PyCrypto = /dev/urandom にアクセスできません
Google App Engine と PyCrypto を使用して暗号化を行っています。以下に示すエラーは、Linux Mint Maya (13) を実行しているローカル開発サーバーでのみ発生します。同じコードを GAE クラウドにデプロイしたところ、エラーなく実行されました。
エラーをスローしている python コードは、このブロックの 2 行目です。
このエラーを確認した後、権限エラーである可能性があることに気付きました。そこで、/dev/urandom のアクセス許可を簡単に確認しました。
したがって、私の権限は問題ないようです。また、開発サーバーをルートとして実行しようとしましたが、同じエラーが発生します。何らかの理由で、これは開発サーバーでのみ発生し、Google のクラウドにデプロイされた場合には発生しません。次に何を試すかについてのアイデアはありますか?
ありがとう!
java - Java Python メッセージの署名と検証
私のサーバーは Python でコーディングされており、このサーバー用の Java クライアントを作成しています。
以下を使用してメッセージ(データ)に署名しています:
これは byteArray(signed_data という名前) を返します。今度は Base64.encodeBase64 を使用してこの署名をエンコードし、次を使用して byteArray(my_byte_array という名前) を文字列に変換します。
この文字列をサーバーに送信します。
サーバー側では、この文字列を受け取り、サーバーは次を使用して署名を検証します。
ライブラリhttp://gdata-python-client.googlecode.com/hg/pydocs/gdata.Crypto.PublicKey.RSA.htmlを使用
my_byte_array を両側に印刷しようとすると、それらは同じであり、signed_data と base64.b64decode(my_byte_array) も同じです
しかし、私はこのエラーが発生しています:
私が考える限り、このエラーは、Java がメッセージをバイトに署名し、Python がそれが Long であることを期待しているため発生しています。
この問題を解決する方法はありますか?