2011-07-26 4 views
3

最近私は、ファイルの暗号化/復号化を必要とするQTプログラムを作成しています。私はプログラミングを使って暗号化を行う方法について全く知らないところで暗号化を初めて学んでいます。グーグルでしばらくしてから、私はこれが私の目的に非常に似ていることを発見しました。thread 彼らはcrypto ++を使うことを提案しますが、私の問題は暗号化の選択肢がたくさんあることです。私はちょうどファイルを暗号化したい、洗練されたものを必要とせず、ファイルを開くためのパスワードを必要としません。私のプログラムだけがそのファイルを開いて読むことができます。ファイルを暗号化/復号化する暗号化アルゴリズムを選択するにはどうすればよいですか?

は、私は私のためにスイートである暗号化アルゴリズムを選択する方法を知っていることはできますか?

THanks @!

+3

あなたが十分な情報を提供していません。あなたは誰からファイルの内容を隠そうとしていますか? (ファイルを見ることができるが、アプリケーションの実行可能ファイルを見ることができない他のユーザ、後者を両方見ることができるが、後者は見ることができないユーザ、アプリケーションを実行できるユーザ)。彼らがそれを見ることができないことはどれくらい重要ですか?あなたが時間を費やす価値がないか、事実上不可能なほど頑張っていますか?どのように決定され、ITに精通しているでしょうか?ファイルコンテンツの種類(数字、テキスト、実行可能コードなど) –

+1

伝統的なROT13暗号化はどうですか?パスワードなしでも動作します;-) –

+0

解読アルゴリズムを選択するのは簡単です。それは暗号化アルゴリズムの逆でなければなりません。 –

答えて

3

を必要以上に複雑、それはそうです。たとえば、ファイル内容を任意の値(AA 16進数など)でXORするか、連続する文字(AA、23、B7、...)で使用する少数の値をXORした後、ループしてAA再び。実際の暗号化ライブラリを使用して多くの利点がありますのような音はありません。彼らのソフトウェアの操作を台無しにすることを決定誰もがとにかく道を見つけるだろう....

8

たぶん、暗号化アルゴリズムに(非常に短い)短いイントロが参考になる:

  • 対称暗号化は:暗号化と復号化に同じ鍵を使用しています。例には、DES、AES、およびBlowfishが含まれます。
  • 非対称暗号化は:(パブリック)を暗号化するために、特定のキー、および復号化するための異なるキー(プライベート)が必要です。例にはRSA、DSA、ElGamalなどがあります。

このアプリケーションでは、対称アルゴリズムを提案していますが、AESはおそらく適切な(AES256)でしょう。あなたが何を使用しているかにかかわらず、常にキーがあります(そうでなければ、それは非常に優れた暗号化ではありません)。簡単な方法は、パスワードをプログラムに直接格納することです。これにより、ユーザーは何も入力することはできませんが、攻撃者はコンパイルされたバイナリでも簡単にパスワードを見つけることができます。

これは、更なる詳細を提供しない限り、私が得ることができると同じくらい固有のものです。私はこれが役立つことを願っています

-1

最も簡単な「本当の」対称アルゴリズムは、あなたのコードに統合するのは非常に簡単ですsample code in 'c' and'c++'があり、おそらくフグであり独立しQCrypto LIB(メインQtのSRCの一部ではありませんが)ですが、それはおそらく少しだ

XMLの低レベルの難読化越え少しポイントがありますようにあなたの質問に私のコメントへの返信で目的の説明を考えると

+2

いいえ、誰が "どのような暗号を使うべきです"と尋ねる人は、 "その暗号を実装する"とは決して言わないべきです。高品質のライブラリの標準アルゴリズムを使用するように指示する必要があります。 – Novelocrat

+0

アルゴリズムの作成者(Bruce schneier)と他の人の助けを借りて、標準アルゴリズムのコードを使用する準備が整いました –

+0

RC4はBlowfishよりもプログラミングがずっと簡単です。 – rossum

関連する問題