NSData到Java String

我最近一直在编写一个与iPhone交互的Web应用程序。 iPhone iphone实际上会以plist的forms向服务器发送信息。 所以看到像…这样的事情并不罕见

RandomData UW31vrxbUTl07PaDRDEln3EWTLojFFmsm7YuRAscirI= 

现在我知道这些数据以某种方式进行了散列/加密。 当我用编辑器(属性列表编辑器)打开plist时,它向我展示了一种更“人类可读”的格式。 例如,上面的数据将被转换为类似……

  

知道改变它的方法是什么? 主要是我想把它变成Java String。

谢谢!

据我们在维基百科的朋友说, 标签包含Base64编码数据。 因此,使用您最喜欢的Java“Base64”类进行解码(另请参阅此问题 )。

PS。 从技术上讲,这既不是“哈希”也不是“加密”,只是“编码”。 “散列”意味着单向变换,其中多个输入值可以产生相同的输出值。 “加密”意味着需要(通常是秘密的)“密钥”来反转加密。 Base64编码只是一种仅使用可打印字符表示任意二进制数据的方法。

在base64解码后,你需要对其进行hex编码。 这就是PL Editor向您展示的内容。

所以…

 SomeData UW31ejxbelle7PaeRAEen3EWMLojbFmsm7LuRAscirI= 

可以用...表示

 byte[] bytes = Base64.decode("UW31ejxbelle7PaeRAEen3EWMLojbFmsm7LuRAscirI="); BigInteger bigInt = new BigInteger(bytes); String hexString = bigInt.toString(16); System.out.println(hexString); 

要得到...

 <516df5aa 3c5b5259 74ecf683 4401259f 711630ba 236c59ac 9bb2ee44 0b1c8ab2>