2014-03-06 144 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

相關問題