3

暗号化を使用する Eclipse の Android プロジェクトに取り組んでいます。コードには次の行が含まれています。

Cipher en = Cipher.getInstance("AES/ECB/NOPADDING");

Eclipse は、「ハンドルされていない例外タイプ NoSuchAlgorithmException」および「ハンドルされていない例外タイプ NoSuchPaddingException」というコード行について不平を言っています。

そのコード行を含むEclipse外のテキストエディターを使用して、単純な暗号化/復号化Javaプログラムを作成しました。プログラムは、コマンド ラインから正しくコンパイルおよび実行され、例外をスローせず、適切に暗号化および復号化されました。

これは、そのアルゴリズムとパディングをサポートするプロバイダーがマシンに適切にインストールされていることを示していますが、何らかの理由で Eclipse が必要なファイルを認識しないか、見つけることができません。さまざまなディレクトリを調べてみましたが、Eclipse の検索パスを何度か変更しましたが、うまくいきませんでした。何か案は?

4

1 に答える 1

3

Cipher.getInstanceのドキュメントを見ると、言及した例外がスローされることがわかります。参照を try/catch ブロックで囲みます (強調表示されたエラーの上にマウスを置くと、Eclipse がこれを解決策として提供するはずです)。

例:

try {
    Cipher en = Cipher.getInstance("AES/ECB/NOPADDING");
    //use the cipher
    //...
} catch (NoSuchAlgorithmException e) {
    //handle exception
    // ex: e.printStackTrace(); System.exit(1);
} catch (NoSuchPaddingException e) {
    //handle exception
} finally {
    //optional, use this block if necessary
}

Java では、チェック済み例外を処理する必要があるため、コード内で try/catch ブロックを適切に使用する必要があります。

例外の基本

于 2012-10-24T20:55:08.530 に答える