Java等于方法和加密的字符串

时间:2013-11-17 07:22:13

标签: java encryption equals

我遇到了一个非常奇怪的情况,并认为我会在这里发帖,因为我不知道什么是错的。我开发了这个涉及密码的Android应用程序,我有一个用户将保存的加密AES字符串保存到文件中。当用户使用他们的密码再次登录系统时,我需要查看它是否等于文件中已加密的。

所以我抓住它并试图像往常一样使用.equals方法比较两个字符串,令我惊讶的是它不起作用。

以下是两个字符串:我错过了什么?任何帮助将不胜感激,因为我甚至没有第一步如何解决这个问题。我也尝试过compareTo == 0,它也没用。

非常感谢!!!

第一个字符串来自文件,第二个字符串是用户刚输入的密码的加密版本:

o0JkTVCBcbZnePszCKp64/cOJx/W/dud/xszfvNjwGk=

o0JkTVCBcbZnePszCKp64/cOJx/W/dud/xszfvNjwGk=

2 个答案:

答案 0 :(得分:1)

Base64编码用于将二进制数据编码为字符串; base64字符串不是数据本身。要比较字符串中的数据,首先将其解码为字节数组,然后使用Java Arrays类中的实用程序函数比较字节数组。这应该避免例如问题。编码内外的空白区域。

答案 1 :(得分:0)

对不起,但是对我有用 使用 .trim(); 加密的字符串,然后进行比较