使用jce的困惑,在线等,请大家帮忙
我最近刚刚开始学习使用jce,然后下了包,并且建了一个工程,做了一个DES的例子,跑起来一切正常,但是我发现如果用到自己现在的工作中的一个工程中,就出现了问题,问题出现在“SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");”这句,下面是那一部分的代码,后来我把原来可以用的工程中多加了一个web application和一张jsp页面,调用一个bean,那个bean中会调用这个加密函数,发现出现了同样的错误,小弟真是头都大了,难道是因为web application和jce有问题?不过我现在用的是jdk1.3,tomcat用的是4.0.3,请大家帮忙
public byte[] EncryptData(byte[] Data, byte[] keyData)
{
if( keyData == null || Data == null)
return null;
try
{
DESKeySpec dks = new DESKeySpec(keyData);// 从原始密匙数据创建DESKeySpec对象
// 创建一个密匙工厂,然后用它把DESKeySpec转换成
// 一个SecretKey对象
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
SecretKey key = keyFactory.generateSecret(dks);
// Cipher对象实际完成加密操作
Cipher cipher = Cipher.getInstance("DES");
// 用密匙初始化Cipher对象
cipher.init(Cipher.ENCRYPT_MODE,key,sr);
// 现在,获取数据并加密
byte[] encryptedData = cipher.doFinal(Data);
return encryptedData;
}
catch (Exception ex)
{
ex.printStackTrace();
return null;
}
}