我需要使用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