2014-05-14 77 views
0

在C#:Base64编码在Java和C#中有何不同?

encryptionKey="Wb2bLNGXABcl4Lz........AxqA5Xhsoqi7w52RKA="; 

var key = Convert.FromBase64String(encryptionKey); 

key value={89,189,155,44,209,151,0,23,37,224,188,250,186,104,35,70,250,81,212,12,106,3,149,225,178,138,162,239,14,118,68,160} 

在Java:

byte[] key= Base64.decodeBase64(encryptionKey); 

key={89,-67,-101,44,-47,-105,0,23,37,-32,-68,-6,-70,104,-21,70,-6,81,-44,12,106,3,-107,-31,-78,-118,-94,-17,14,118,68,-96}; 

键值是在Java和C#不同。如何在Java中获得相同的价值?

+0

我正在寻找相同的输出在Java中的相关代码。 – user3635271

+0

他们*是*他们相同的输出。 Java的显示有符号字节,C#不是。 – awksp

回答

0

这是一样的。在第一种情况下,字节是无符号的,Java字节是有符号的。我们在阵列中看到的是对相同值的不同解释,例如189和-67 = 0xBD

字节b =(字节)189;

now b = -67

+0

谢谢Evgeniv Dorofeev – user3635271