繁体   English   中英

javax.crypto.Cipher出现问题

[英]Trouble with javax.crypto.Cipher

我已将以下内容导入到我的项目中

import java.security.*;
import javax.crypto.*;
import javax.crypto.spec.*;
import java.io.*;

下面告诉我“未处理的异常类型NoSuchPaddingException”

Cipher c = Cipher.getInstance("AES");

我正在使用JaveSE-1.6。

有什么想法会导致这种情况吗?

Cipher.getInstance(...)引发两种异常,并要求您处理它们。

都有包含Cipher c = Cipher.getInstance("AES");的方法Cipher c = Cipher.getInstance("AES"); 如果希望在其他地方处理该异常,请重新抛出该异常:

public void foo(){ throws Exception ... }

或者更好的方法是,将方法包含在try-catch块中:

try{
   Cipher c = Cipher.getInstance("AES");
}
catch(Exception e){
   //do something about it
}

您还可以提高想象力,并执行以下操作:

try{
   Cipher c = Cipher.getInstance("AES");
}
catch(NoSuchAlgorithmException e){
   //handle the case of having no matching algorithm
}
catch(NoSuchPaddingException e){
   //handle the case of a padding problem
}

某些Java方法会引发异常,而其中一些则需要您处理它们。 该方法之后,需要处理的Java API文档中带有Throws的所有内容。 通常,有充分的理由使他们做到这一点。 在这种情况下,如果无法获得正确的密码,则无法加密任何内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM