私は以下のコードを使用して、ECBとPKSC5パディングでトリプルDESエンコーディングを実装しています。私が使用している秘密鍵は、生folder.Iでの鍵は、なぜ私はこの例外を取得していますし、どこで間違ったつもり トリプルDES encoding-java.security.InvalidKeyException:キーサイズは128または192ビットでなければなりません
exception-以下java.security.InvalidKeyException: key size must be 128 or 192 bits
を取得していますか?
public byte[] encrypt(String message) throws Exception {
getResources().getIdentifier("key",
"raw", getPackageName());
byte[] bytes = new byte[1024];
try {
BufferedInputStream buf = new BufferedInputStream(getResources().openRawResource(
getResources().getIdentifier("key",
"raw", getPackageName())));
buf.read(bytes, 0, bytes.length);
buf.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
final SecretKey key = new SecretKeySpec(bytes, "DESede/ECB/PKCS5Padding");
final Cipher cipher = Cipher.getInstance("DESede/ECB/PKCS5Padding");
cipher.init(Cipher.ENCRYPT_MODE,key);
final byte[] plainTextBytes = message.getBytes("utf-8");
final byte[] cipherText = cipher.doFinal(plainTextBytes);
return cipherText;
}
この例外は、おそらく明確にすることはできませんでした。 –
@JamesKPolk私は上記の例外のcipherText bcozに文字列を隠すことができません。「その例外はおそらくもっと明確になることはできませんでした」という意味ではわかりません。 – Bhuvi
@Bhuvi ECBモードを使用しないでください。安全ではありません。[ECBモード](https://en.wikipedia.org/wiki/Block_cipher_mode_of_operation#Electronic_Codebook_.28ECB.29)を参照して、ペンギンまでスクロールしてください。 代わりにランダムIVのCBCモードを使用して、復号化に使用するためにIVで暗号化されたデータのプレフィックスを付けるだけです。 3DESは新作では使用できません。 – zaph