Base64解码,使用UTF-8,UTF-16

时间:2018-12-24 14:53:50

标签: java mysql spring utf-8 base64

我已经在计算机上构建了本地restAPI服务器,并且具有注册功能,可以将用户数据发送到mySQL数据库。

我已经将密码字符串编码为base64字符串(想尝试对自己进行加密)。 当我尝试解码从数据库中获取的密码时,输出错误。

例如密码(base64):MDQ1MTA0NTE =

将输出04510451

解码器类-

byte[] decodedValue = Base64.getDecoder().decode(password);  


return new String(decodedValue, StandardCharsets.UTF_8);

编码器类-

byte[] passEncoded = Base64.getEncoder().encode(password.getBytes("UTF-8"));
System.out.println("encoded value is " + new String(passEncoded));
String finalPass = null;
finalPass = new String(passEncoded, "UTF-8");

return finalPass;

现在我得到的实际输出是:“ӎuӎu”(需要04510451)

预先感谢, 乔纳森

1 个答案:

答案 0 :(得分:1)

您似乎在解码两次。这在您提供的代码段中不可见,但将是最合乎逻辑的解释:

MDQ1MTA0NTE=-> 04510451-> ӎuӎu