我正在尝试在Linux CentOS上生成一些随机密码,并将其作为base64存储在数据库中。密码为“ KQ3h3dEN”,当我将其与“ echo KQ3h3dEN”转换时| base64”,因此我将获得“ S1EzaDNkRU4 K ”。我在Java中有功能:
public static String encode64Base(String stringToEncode)
{
byte[] encodedBytes = Base64.getEncoder().encode(stringToEncode.getBytes());
String encodedString = new String(encodedBytes, "UTF-8");
return encodedString;
}
并且encode64Base(“ KQ3h3dEN”)的结果为'S1EzaDNkRU4 ='。
因此,在此示例中,它将添加“ K”而不是“ =”。当在Linux上使用base64和在Java中使用base64编码时,如何确保我将始终获得相同的结果?
更新:更新了问题,因为我在Linux编码字符串的末尾没有注意到“ K”。另外,这里还有一些其他示例:
经过几个小时的实验,找到了解决方案。似乎将新行添加到了我要编码的字符串中。解决方案将是:echo -n KQ3h3dEN | base64
结果将与使用Java base64编码的结果相同。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句