我正在尝试在Linux CentOS上生成一些随机密码,并将其以base64的形式存储在数据库中。密码是'KQ3h3dEN',当我使用'echo KQ3h3dEN | base64'进行转换时,结果会得到'S1EzaDNkRU4K'。 我有一个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 KQ3h3dENa | base64' => 结果='S1EzaDNkRU5hCg==',但应该是'S1EzaDNkRU5h'
- 'echo KQ3h3dENaa | base64' => 结果='S1EzaDNkRU5hYQo=',但应该是'S1EzaDNkRU5hYQ=='