クラウドストレージを使用する最初の段階で、単純なXOR暗号化を使用したいと考えました。 このアルゴリズムの実装は複雑ではありません(Friedman A.、Klander L. et al .: "C / C ++。Archive of Programs"-M。:CJSC "Publishing House BINOM"、2001-640 pp。)深刻な計算は必要ありません。 ただし、この暗号化方式にはプラスが1つしかありません。実行は比較的高速です。 出力には、その内容が素人だけを怖がらせるファイルがあります。 XOR暗号化は、一見すると思われるほどの保護を提供しません。 まず、1つのキーで多くのファイルを暗号化するのが楽しい場合、邪悪な叔父は、このシリーズのファイルの少なくとも1つのオリジナルを取得して、キーを開き、一連のファイル全体を復号化するだけで十分です:
キー= 01101001
テキスト= 10010001
エンコード= 01101001 ^ 10010001 = 11111000
キー=エンコード^テキスト= 11111000 ^ 10010001 = 01101001
一方、アルゴリズムの数学的な記述は単純すぎます。これに関連して、たとえばここに記述されている元のファイルがなくてもキーを開くことができます 。
この点で、この機能は使用しませんが、完全を期すためにソースへのリンクを投稿します。 最も単純でかなり暗号化されたアルゴリズムの1つは、AES-256標準です。 彼については多くの論争がありましたが、米国では州の秘密に関連する情報を暗号化することが許可されていました( Wikipediaアーカイブを参照)。今日、このアルゴリズムを妥当な時間内に攻撃する方法はありません。 ある親切な人がすでにこのアルゴリズムのソフトウェア実装に取り組んでおり、彼が彼のベストプラクティスを自由に使用できるようにしています( 開発者のサイト )。 このソリューションを使用することをお勧めしました。 ユーティリティソース:
github.com/asu2010/crypt-XORエンコーダー/デコーダー
github.com/asu2010/crypt_AES-256-AES-256-エンコーダー/デコーダー
どちらのプログラムも(もちろん)コンソールであり、Windows用に作成されています。 プログラムには、パスワードジェネレータプログラムによって作成されたデフォルトキーがあります。 DEFAULT_KEYマクロに格納されているため、簡単に変更できます。 使いやすくするために、プログラムの実行可能ファイルに「crypt ++。Exe」という名前を付け、このファイルへのパスをPATH環境変数に追加しました。 CMDからのデフォルトのキー暗号化は次のとおりです。
>crypt++ example.jpg enc
復号化:
>crypt++ enc_example.jpg dec
別のキーを使用する必要がある場合は、enc / decパラメーターの後に指定できます。
>crypt++ photo.jpg enc Ajk45BZ972pr
おそらく、このツールはあまり便利ではありませんが、絶望的ではありません。 小さなコウモリのニックネームを書きましょう。
@echo off echo / echo : set /P FoldPath= cd %FoldPath% for /f %%i in ('dir %FoldPath%\*.* /b') do ( crypt++ "%%i" enc del "%%i" )
これで、フォルダ内のファイルの配列を暗号化して、元のファイルを削除できます。 同じ方法でファイルを復号化するには、同様のコマンドラインを記述し、crypt ++がdecパラメータで呼び出されます。 これらの司令官では、覚えておく必要のないパスワードを指定できます。 このバッチファイルへのパスはPATH変数で指定することもでき、多数のファイルに対してユーティリティを使用する方が便利です。 さて、公平に、不快な瞬間についてお話しします。
- AES-256では、ファイルは16バイトのブロックで暗号化され、暗号化されたファイルのサイズは常にこの数値の倍数になります。 ソースファイルのバイト数が16の倍数でない場合、NUL値を持つバイトが復号化されたファイルの最後に追加されます。 これはファイルの破損ではありませんが。 これは、AES-256を使用するユーティリティにのみ適用されます。
- モバイルガジェットの暗号化/デコーダーは実装されていません。 クラウドから別のPCにファイルをダウンロードするとき、それらを復号化する必要があります。
- 提案されたコウモリのニックネームは、指定されたフォルダのサブディレクトリに対して再帰的に呼び出すことはできません。 また、宛先フォルダーのファイル名にスペースを含めることはできません。
- AES-256暗号化は非常に遅いです。 私のCeleronでは、暗号化速度は約40 kb / sでした。 しかし、より強力なマシンでは、より満足のいく数値はほとんど得られません。
強い欲求が現れた場合、最初の3つの問題は完全に解決できます。
これらのツールは、個人使用のために2日間不注意にコード化されて