2014-03-06 112 views
0

我目前正在尝试使用RSA加密用户输入数据(我知道它不是最好的方式,但它的工作分配,我需要这样做)我有它加密并解密小字符串的数据,但现在试图通过分割每个字的字符串移动到任何长度的数据,但是当我尝试以这种方式加密数据时,我得到一个错误,说“不兼容的类型:字节[]不能转换为字节“不兼容的类型:字节[]不能转换为字节

我不知道为什么会发生这种情况或如何解决它。任何帮助将是非常大,所以即使是在如何去了解这个不同

final String originalText = "New Class NewClass NewClass NewClass "; 
     String[] splited = originalText.split("\\s+"); 

     ObjectInputStream inputStream = null; 

     // Encrypt the string using the public key 
     inputStream = new ObjectInputStream(new FileInputStream(PUBLIC_KEY_FILE)); 
     final PublicKey publicKey = (PublicKey) inputStream.readObject(); 
     final byte[] cipherText = null; 
     for (int i = 0; i < splited.length; i++) { 
      LINE ERROR APPEARS ON 
      cipherText[i] = encrypt(splited[i], publicKey); 
      System.out.println(cipherText[i]); 

     } 
+1

大概是:'加密()''返回字节[]''不byte' – 2014-03-06 17:58:34

回答

1

在调用encrypt你得到字节数组,所以你cipherText可以byte[][] cipherText,然后看到它的想法就叫System.out.println(new String(cipherText[i]));

编辑NPE是因为您没有初始化您的cipherText阵列而引发的。请尝试以下操作:

byte[][] cipherText = new byte[splited.length][]; 
+0

这个伟大的工程,现在即时得到在同一行上一个空指针异常,当我运行它 – m4773rz

+1

@ m4773rz能你发布堆栈跟踪?顺便说一句,你的循环内你总是分配结果到'0'元素,我认为这是一个错字 – nikis

+0

你知道如何发布stacktrace形式Netbeans我有一个快速的谷歌在那里,看不到,是的,我看到我的自我并编辑它。 – m4773rz

相关问题