私は、私が挿入/選択するpythonでsqlite3のDBを持っています。アプリは素晴らしいですが、私はそれを微調整して誰もパスワードなしでDBから読むことはできません。どのように私はこれをPythonで行うことができますか?私はどこから始めるべきかわからないことに注意してください。暗号化されたファイルまたはdb in python
答えて
リストはPython encryption examplesです。
SQLiteデータベースは人間が読める形式であり、組み込みの暗号化はありません。
誰かがデータベースファイルに直接アクセスして読んだり、プログラムからアクセスしたりするのを心配していますか?
私は前者を想定しています。なぜなら後者は実際にデータベースに関連していないからです。それはあなたのアプリケーションのセキュリティです。
いくつかのオプションが頭に浮かぶ:
- ファイルシステムのアクセス権ではなく、暗号化してDBを保護します。あなたはあなたの環境が何であるかを言及していないので、これがあなたのために実行可能かどうかは言えませんが、読めないものを解読できないので、おそらく最も簡単で信頼性の高い方法です。
- 書き込みの前にPythonで暗号化し、読み込み後にPythonで復号化します。かなりシンプルですが、SQLのセットベースのマッチング操作の大部分を失います。
- 別のデータベースに切り替えます。ユーザー認証とアクセス許可は、ほとんどのマルチユーザーデータベースの標準機能です。ツールの限界にぶつかると、新しい機能を現在のツールにハックするのではなく、他のツールを見回す方が簡単かもしれません。
sqliteはデスクトップアプリケーション用に軽量であるため私は他のデータベースを使用できないことを除いて同じ質問があります(専用ジャーナルソフトウェア) –
SQLCipherを使用できます。 SQLiteの
SQLCipherため
オープンソースのフルデータベース暗号化は、データベースファイルの透明256ビットのAES暗号化を提供してSQLiteの拡張機能です。ページはディスクに書き込まれる前に暗号化され、読み取られると解読されます。フットプリントが小さくパフォーマンスも優れているため、組み込みアプリケーションデータベースを保護するのに最適で、モバイル開発に適しています。データベースファイル内のデータの
- は プラクティス(CBCモード、鍵導出)優れたセキュリティを使用
- ゼロコンフィギュレーションとアプリケーションレベルの暗号化広範なプラットフォーム
- サポート:C/C++、Obj-C、QT、Win32/.NET、Java、Python、 RubyなどWindows、Linux、iPhone/iOS ...
Pythonから作業しますか? – Michael
私は同じ問題を抱えていました。私のアプリケーションでは、複数のインスタンスが同時に実行されている可能性があります。このため、私はsqliteのdbファイルを暗号化するだけで済みません。私はまた、この状態でデータベースで深刻なデータ操作を行うことはできないので、Pythonでデータを暗号化することは良い考えであるとは思わない。念頭に置いて、これらの制約に
、私は、次の2つの解決策が出ている:
1)は、前述のSQLCipherを使用してください。私がここに見る問題は、Python用の独自のバインディングを作成し、自分でコンパイルする(または料金を支払う)必要があるということです。いずれにしても、これは他のPython開発者のための素晴らしいソリューションになると思います。私が成功すれば、私は解決策を投稿します。
2)オプション1がわかりにくい場合や、時間がかかりすぎる場合は、この方法を使用します。この方法は安全ではありません。 pycryptoを使用してデータベースファイルを暗号化します。データベースファイルを解読し、さまざまなクライアントからの要求を処理するSQL「サーバー」を実装します。未処理の要求がなければ、データベースを再暗号化します。これは全面的に遅くなり、データベースは一時的な復号化状態のままになります。
これらのアイデアが次の人に役立つことを願っています。
EDIT 2013年1月13日私はそれをコンパイルするために取得するように見えることができなかった、とコードベースがサウンドライブラリながら、あるOpenSSLを、使用しようとしているので、私はSQLCipherをあきらめ
単純なAESのコードベースのかなり大量128。
私は別のオプションwxSQLite3を見つけました。私はSQLite暗号化ピースを単離する方法を見つけました:https://github.com/shenghe/FreeSQLiteEncryption。私はこれをコンパイルして(SQLite3の最新バージョンで)動作させることができました。 wxSQLite3はAES 256もサポートしています。私の次のステップは、変更されたsqlite3.dllでpysqlite(Pythonに組み込まれているsqliteライブラリ)をコンパイルしようとすることです。それがうまくいくなら、wxSQLite3のsqlite3.dllの拡張暗号化部分をサポートするためにpysqliteを微調整します。いずれにせよ、私はこのスレッドを自分の結果で更新しようとします。成功した場合は、Githubにビルド手順を示す最終コードベースを投稿します。
Frontwareが示唆しているように、sqlcipherを使用できます。
pysqlcipher pythonパッケージは、拡張子をコンパイルするためにsqlcipherコードの組み合わせを使用するため、使いやすくすることができます。
は、それはあなたがちょうど暗号プラグマを設定し、定期的なsqlite.dbapi2を使用するようpysqlcipher使用してだけの問題でなければなりません。
- 1. 暗号化されたCouchbase Lite DB(Xamarin)
- 2. 復号化されたファイルはまだ暗号化されています
- 3. web2py:アップロードされたファイルを暗号化
- 4. ファイル内で暗号化されたファイルシステム
- 5. Pythonで暗号化されたファイルに直接書き込む
- 6. (暗号化された)暗号化されたメッセージを復号する
- 7. python jsencryptで暗号化されたテキストの復号化
- 8. Zip、Pythonで暗号化されたGzipedファイル
- 9. ファイルの暗号化と復号化のためのPythonスクリプト
- 10. 暗号化されたメディアファイルエンジニア
- 11. aws kmsは暗号化されたテキストブロブ
- 12. Node.jsの復号化暗号化されたファイル有する塩
- 13. Pythonは指定されたパスワードでtxtを暗号化/復号化します
- 14. Python - 暗号化 - ネットワーク上で暗号化されたデータを送信
- 15. Swift:ファイルまたはプレーンテキストの暗号化
- 16. PGP暗号化ファイルまたはテキスト?
- 17. TDEで暗号化されたOracle DBのバックアップ
- 18. 暗号化ストリームで暗号化されたファイルに追加した後、復号化に失敗する
- 19. シーザー暗号暗号化Python
- 20. C#暗号化されたデータをJavascriptで暗号化する
- 21. 例暗号化されたメディア拡張の暗号化
- 22. 暗号化された秘密鍵と暗号化された文字列の復号化
- 23. AndroidでDBファイルを暗号化する
- 24. 復号化列レベルのSQL暗号化された値は
- 25. 暗号化されたWebページをダウンロード
- 26. 暗号化されたテキストでPython AES Decryptが印刷されました
- 27. カラムレベル暗号化が実行された後にサイズ変更されたカラム(常に暗号化されます)
- 28. 優れた暗号化
- 29. RSA暗号化(RSACryptoServiceProvider)を使用した暗号化されたデータサイズ
- 30. ionCubeで暗号化されたファイルをデコードする方法は?
これは特別なライブラリを使用しています – xster