2017-01-20 11 views
1

暗号化/復号化にBouncyCastleを使用しています。 Cipher.getInstance("RSA/ECB/PKCS1Padding")を避ける方法はありますか?攻撃者が私が使用しているアルゴリズムを知っているのを防ぎたい。私はこのようなもので試しています:[Android] [暗号化]暗号化の種類を宣言しているときに文字列を使用しないようにする方法

AsymmetricBlockCipher cipher = new PKCS1Encoding(new RSAEngine()); 
cipher.init(true, publicKey); 

しかし、私は正しいトラックにいるかどうかわかりません。

+0

違いは何ですか? Javaのコードは文字列と同じように読むことができます – Selvin

+0

私はJavaコードに難読化を使用できますが、文字列に対しても同じことをすることはできません。 – mobdev

+0

実行時ライブラリ呼び出しを難読化できないので助けになりません難読化はあなたのコード(およびインクルードライブラリ)でのみ機能しますが、ランタイムコールは難読化されません(fxでは 'Utils.encryptそれは 'aa()'になりますが、メソッド本体には 'new PKCS1Encoding(new RSAEngine());' ...とにかくproffesional obfuscatorsも文字列を暗号化します... – Selvin

答えて

1

セキュリティはメソッドを隠すことに依存しないため、メソッドは文字列で指定でき、それでも安全です。暗号化のために秘密は完全に鍵に基づいています。

このため、ランダムなデータ、またはPBKDF2でパスワードから派生したパスワードを使用すると、良いキーを使用することが重要です。

+0

私はそれを認識していますが、ソースコードにこの "RSA/ECB/PKCS1Padding"のような文字列を避ける必要があります。 – mobdev

+0

残念なことに、未知の人々のsometinesは、状況はうまくいかない。 – zaph

関連する問題