我需要使用Java的SecretKeySpec()
與數字陣列超過127如何將無符號字節傳遞給SecretKeySpec()?
更大。如果我執行以下操作:
new byte[] { (byte)0xD9, (byte)0xDF, (byte)0x85 }
的號碼來獲得轉換爲字節,他們會是負的。
我當然可以用0xFF
&
它們,並將它們保存在一個short
陣列和保存自己的價值,但我不能給這個數組傳遞給SecretKeySpec()
,因爲它僅僅接收bytes[]
陣列。
任何想法?
如果SecretKeySpec需要一個字節[],則必須假定它正確處理值> 127。你真正的問題是什麼? – matt
寫這個:'new byte [] {0xD9,0xDF,0x85}'產生一個錯誤。它需要像這樣:'new byte [] {(byte)0xD9,(byte)0xDF,(byte)0x85}'。如果是這樣的話,那麼這些數字將被轉換爲有符號數字。所以我已經通過了一個錯誤的數組... –
你不能有一個等於128的字節,因爲沒有無符號字節。所以SecretKeySpec必須相應地處理它。你爲什麼說它是錯誤的數組? – matt