ホームページ  >  記事  >  Java  >  機密文字列を難読化されたコードに隠すにはどうすればよいでしょうか?

機密文字列を難読化されたコードに隠すにはどうすればよいでしょうか?

DDD
DDDオリジナル
2024-10-30 16:12:03574ブラウズ

 How Can Sensitive Strings Be Hidden in Obfuscated Code?

難読化されたコードで機密文字列を隠す

機密情報を保護するためにコードを難読化するのは一般的な手法ですが、目の肥えた目であれば、依然として隠された文字列を発見することができます。機密データを効果的に隠すには、次の手法を検討してください。

エンコーディングと暗号化

目的がカジュアルな検査を阻止することである場合は、エンコーディングで十分です。 android.util.Base64 クラスは便利なメソッドを提供します。ただし、エンコードによるセキュリティは無視できます。

攻撃者に対する保護を強化するには、AES などの暗号を使用した対称暗号化をお勧めします。 javax.crypto.Cipher クラスは、その使用例を示しています。

手動の暗号化と復号化

次の手順に従って暗号化と復号化を手動で実装します。

  1. 既知のキーを使用して文字列を暗号化します。
  2. 文字列の復号化されたバージョンを使用するようにコードを更新します (例: mySecret = "http:// の代わりに MyDecryptUtil.decrypt(encrypted, key) を使用します) example.com").

サードパーティ DRM ソリューション

Google のライセンス サーバーなどのサードパーティ DRM ソリューションの使用を検討してください。これらは、セルフロール ソリューションに比べて潜在的なセキュリティ上の利点を提供しますが、それでも手動の暗号化と復号化と同様の制限があります。

R クラス文字列

で説明した R クラス文字列あなたのコードはリソースへの参照です。 ProGuard のような難読化ツールは、R クラス自体を難読化するのではなく、リソース ID への参照を難読化します。同じ番号を維持しますが、実際のリソースを指すマッピングを変更します。

この場合、2130903058 はレイアウト ファイルを参照します。逆コンパイルされた R クラスがなければ、それが表すリソースを直接取得することはできませんが、リソースのバイナリ データへのアドレスであることには変わりありません。

以上が機密文字列を難読化されたコードに隠すにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。