RC4 疑难杂症 javax.crypto

yunxiang 2008-03-25 03:18:03
我在eclipse 里面写得程序运行正常。

但是当我打包jar文件后。

环境变量都设置好了。最后就是运行不成功

public static byte[] decrypt(byte[] inData,byte[] keyData){

if(inData==null) throw new IllegalArgumentException();

try{
System.out.print("-----------1="+keyData.length);
SecretKey key=new SecretKeySpec(keyData,"RC4");
System.out.print("-----------2");
Cipher cipher=Cipher.getInstance("RC4");
System.out.print("-----------3");
cipher.init(Cipher.DECRYPT_MODE, key);
System.out.print("-----------4");
return cipher.doFinal(inData);

}catch(Exception e){
System.out.println(e.getMessage());
return null;
}
}

在elcipse中是正确的。
但是打包后运行结果:
-----------1=16-----------2Cannot find any provider supporting RC4
Exception in thread "main" java.lang.NullPointerException
at net.ideaBank.NMS.UserNameRuleItem.setBytes(NMSData.java:491)
at net.ideaBank.NMS.NMSServer.ReadNpsLicFile(NMSServer.java:104)
at net.ideaBank.NMS.NMSServer.start(NMSServer.java:52)
at net.ideaBank.NMS.Server.start(Server.java:31)
at TestNMSserver.main(TestNMSserver.java:51)
...全文
214 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
yami251139 2008-03-25
  • 打赏
  • 举报
回复
。。。
都不對額。。。
在推測下,你打包的時候相關的jar一道打了么?MAINFEST里面是不是也指定了?
yunxiang 2008-03-25
  • 打赏
  • 举报
回复
public static byte[] decrypt(byte[] inData,byte[] keyData){

if(inData==null) throw new IllegalArgumentException();

try{
for(int i=0;i<keyData.length;i++){
System.out.print(keyData[i]+",");
}
SecretKey key=new SecretKeySpec(keyData,"RC4");
System.out.print("-----------2");
Cipher cipher=Cipher.getInstance("RC4");
System.out.print("-----------3");
cipher.init(Cipher.DECRYPT_MODE, key);
System.out.print("-----------4");
return cipher.doFinal(inData);

}catch(Exception e){
System.out.println("ERR="+e.getMessage());
return null;
}
}
-----------------------------------------------------------------------
D:\NMS>java TestNMSserver
-91,56,63,15,65,-82,-74,74,-54,-90,-79,59,-78,-44,-78,-15,-----------2ERR=Cannot
find any provider supporting RC4
Exception in thread "main" java.lang.NullPointerException
at net.ideaBank.NMS.UserNameRuleItem.setBytes(NMSData.java:491)
at net.ideaBank.NMS.NMSServer.ReadNpsLicFile(NMSServer.java:104)
at net.ideaBank.NMS.NMSServer.start(NMSServer.java:52)
at net.ideaBank.NMS.Server.start(Server.java:31)
at TestNMSserver.main(TestNMSserver.java:51)
yami251139 2008-03-25
  • 打赏
  • 举报
回复
那你確定你keydata里面有東西么
yunxiang 2008-03-25
  • 打赏
  • 举报
回复
一样的.不是这个问题.
yami251139 2008-03-25
  • 打赏
  • 举报
回复
當然沒有string。。。
你沒聽懂我意思
我叫你getinstance里面放個對象不要直接用""這樣子的
yunxiang 2008-03-25
  • 打赏
  • 举报
回复
java中有string?
如果没用过加密算法的请别乱回答。多谢合作。
yami251139 2008-03-25
  • 打赏
  • 举报
回复
Cipher cipher=Cipher.getInstance("RC4");
這部出錯啊,說是不支持。。。


getInstance里面的對象是空才報空指針的。。。
你把引號去掉呀。。。+了引號是string型的不+才是String型的呀。。。

62,616

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧