2009-07-16 10 views
4

OpenSSL RSA公開鍵(パスフレーズを使用)をPythonライブラリとともにインポートし、それを使ってメッセージを解読する最も簡単な方法を知っている人はいませんか?OpenSSL生成鍵を使用したPython RSA解読

私はezPyCryptoを見て撮影したが、それはOpenSSLのRSAキーを認識するように見えることはできません、私は次のようにimportKeyでキーをインポートしようとした

key.importKey(myKey, passphrase='PASSPHRASE') 

MYKEY私にcaseは、文字列で表されるOpenSSL RSA公開鍵/秘密鍵ペアです。

これはとbalks:

unbound method importKey() must be called with key instance as first argument (got str instance instead)

APIドキュメントは言う:

importKey(self, keystring, **kwds)

誰かが私はezPyCryptoを使用してキーを読み込む方法を提案することができますか?私も試してみた:

key(key, passphrase='PASSPHRASE') 

が、これはとbalks:ここではドキュメントに

ezPyCrypto.CryptoKeyError: Attempted to import invalid key, or passphrase is bad

リンク:

http://www.freenet.org.nz/ezPyCrypto/detail/index.html

EDIT:この上だけ更新。 RSA鍵を正常にインポートしましたが、eqPyCryptoはAESブロック暗号をサポートしていないため、実際に問題を解読しました。人々が知るように。私は首尾よくncrypt(http://tachyon.in/ncrypt/)を使って欲しいことをしました。私は、SWIGとOpenSSLのコンパイルの問題のために、が最低要件を超えてインストールされていても、というM2Cryptoのコンパイルに関する問題がありました。 Pythonの暗号化/復号化フレームワークは現時点では地雷のようなものです。ホ・ハム、助けてくれてありがとう。

答えて

6

keyimportKeyを呼び出す必要があるという最初のエラーが表示されます。

k = key() 
k.importKey(myKey, passphrase='PASSPHRASE') 

しかし、ドキュメントは、これはあなたが望むものを行うための良い方法であることを示唆しているようだ:

k = key(keyobj=myKey, passphrase='PASSPHRASE') 
+0

[OK]をクールに、私のキーのインポートを解決します。ここでは

は、サンプルRSA暗号化/ decriptionコードです。 解読部分については、私はk.decString(someString)を使って鍵を解読すると仮定しています...助けてくれてありがとうございます – Jon

5

あなたが達成しようとしているか明らかではないが、あなたはM2Crypto aを与えることができます試してみる。私の視点からは、Pythonで利用可能な最高のOpenSSLラッパーです。

import M2Crypto as m2c 
import textwrap 
key = m2c.RSA.load_key('key.pem', lambda prompt: 'mypassword') 

# encrypt something: 
data = 'testing 123' 
encrypted = key.public_encrypt(data, m2c.RSA.pkcs1_padding) 
print "Encrypted data:" 
print "\n".join(textwrap.wrap(' '.join(['%02x' % ord(b) for b in encrypted ]))) 

# and now decrypt it: 
decrypted = key.private_decrypt(encrypted, m2c.RSA.pkcs1_padding) 
print "Decrypted data:" 
print decrypted 
print data == decrypted 
+1

私が達成しようとしていることは非常に明確です: "OpenSSL RSA秘密/パスフレーズ)をPythonライブラリと組み合わせ、それを使ってメッセージを解読します。 – Jon

+1

まあ、上記の例はまさにそうです。 ただし、単純なRSA暗号化はほとんど使用されません。通常、データストリームの暗号化に使用されるいくつかの対称鍵暗号化アルゴリズムがあり、RSAは対称鍵の暗号化に使用されます。あなたが最良の解決策を探したいならば、より大きな問題を説明するべきかもしれません。 – abbot

関連する問題