我有一个函数返回String:
public String getString(String password){
......
try {
.......
encodedPassword = Base64.encodeToString(msgDigest,1 );
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchAlgorithmException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return encodedPassword;
}
我想添加(连接)“=”String到函数返回字符串
我尝试使用它:
encrptdPassword = getString("1234");
encrptdPassword = encrptdPassword+"=";
或者:
encrptdPassword = encrptdPassword .concat("=");
但我得到的结果就像是两个不同的物体(空间或制动之间)
我认为问题出在Base64.encodeToString中,但我必须使用基于64的字符串
函数getString
返回我:
A6xnQhbz4Vx2HuGl4lXwZ5U2I8iziLRFnhP5eNfIRvQ
我想将=
添加到返回的字符串中:
A6xnQhbz4Vx2HuGl4lXwZ5U2I8iziLRFnhP5eNfIRvQ=
但是我在输出
上收到了这个A6xnQhbz4Vx2HuGl4lXwZ5U2I8iziLRFnhP5eNfIRvQ =
或者:
A6xnQhbz4Vx2HuGl4lXwZ5U2I8iziLRFnhP5eNfIRvQ
=
...喜欢2个不同的字符串。
我哪里错了?
答案 0 :(得分:1)
我假设您正在使用Apache Commons Codec中的Base64。
此类的默认构造函数使用“\ r \ n”作为行分隔符,它将添加到每个编码行的末尾。如果您不想这样,请将对象构造为:
new Base64(76, '');
如果这不是您正在调用的类(从您的代码示例中调用静态方法),请检查API并查看是否可以为转换设置行分隔符。
答案 1 :(得分:0)
不是Base64.encodeToString(msgDigest,1)填充中的1吗?
如果不是,那么你可以修剪()字符串以删除空格。