2012-03-30 13 views
3

私は、逆コンパイルに対して難読化/隠蔽したいと思ういくつかの文字列を持っています。私は真の予防を達成することは決してできないだろうが、実際の文字列がそのまま現れないようにする方法がいくつかあることを願っています。Java - 逆コンパイルを防ぐために文字列を難読化/隠蔽する方法はありますか?

ご協力いただければ幸いです。

+3

私は[ROT13](http://en.wikipedia.org/wiki/ROT13)(: –

+0

)を提案します。これは難読化ツールを使用して行われると思います。これらのツールは、コードを非常に難しくします例えば、あなたはhttp://www.yworks.com/en/products_yguard_about.htmlを試すことができます。 –

+0

Thanks Niklas!ROT13は十分に単純なようです!あなたの回答を回答としてマークしたいのですが、なんてわかりません。 – Justin

答えて

3

リソースファイルに格納し、AESなどを使用して暗号化することができます。次に、アプリケーションの初期化でデータを抽出します。

+0

誰かがあなたのアプリケーションを逆コンパイルして(簡単に) AESキー –

+0

あなたはソースにAESキーを保持する必要はありません。安全に保つ方法はたくさんあります(例えば、認証された許可された人/アプリ)。 –

+0

クール、私は自分のリモートサーバを持っています。残念ながらこのシステムの実装方法についてはわかりません。 私はこれを見ました:http://stackoverflow.com/a/2443952/1112835 ".classは(異なって)サーバー側で動的に生成されます。"どのような方法で動的な.classファイルの使用を許可するのかわからない...ダウンロードされた一意の.classファイルの内容と同様に? – Justin

0

私が気に入っている方法は、それらをbase64でエンコードすることです。次に、必要に応じて文字列をデコードして使用する単純なライブラリ呼び出しです。これは文字列とその長さの両方を難読化します

1

非公開APIの名前を変更し、文字列リテラルの単純な変換を行う無料の数多くの商業用の"java code obfuscators"があります。この難読化は決まった攻撃者を止めるわけではありませんが、カジュアルな観察を妨げることになります。

+0

うん、特に '文字列* .class'のようなものは、*スキルを全く必要としないものを止めるでしょう。 –

+1

私はProguardを昨日試しましたが、自分のコードにあるように私の文字列がまさに来るのを見ました= – Justin

関連する問題