Java 哈希算法总是在结尾返回\r\n

Java 哈希算法总是在结尾返回\r\n,java,hash,base64,md5,sha1,Java,Hash,Base64,Md5,Sha1,我使用MessageDigest类来获取字符串的哈希值,可以使用SHA1或MD5。下面是使用MD5的示例代码 private static String applyHashToKey(String key){ byte[] hashkey = null; MessageDigest md = null; try { md = MessageDigest.getInstance("MD5"); } catch

我使用MessageDigest类来获取字符串的哈希值,可以使用SHA1或MD5。下面是使用MD5的示例代码

private static String applyHashToKey(String key){
        byte[] hashkey = null;
        MessageDigest md = null;
        try {
            md = MessageDigest.getInstance("MD5");
        } catch (NoSuchAlgorithmException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        try {
            hashkey = md.digest(new BASE64Decoder().decodeBuffer(key));
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        String result = new BASE64Encoder().encodeBuffer(hashkey);
        return result;
    }
现在我注意到,我要么使用SHA1,要么使用MD5,从这个函数返回的哈希字符串最后总是有一个\r\n。

例如:Y60SEDKVYEKH4LKDIKPC+zu5+0=\r\n

知道发生了什么事吗。这可以吗,还是我做错了什么,并介绍了\r\n我自己

现在我注意到,要么使用SHA1,要么使用MD5,从这个函数返回的哈希字符串最后总是有一个\r\n


显然,Base64编码器正在提供线路终端。否则它会对它进行编码。

我强烈怀疑这是
encodeBuffer
调用。这是sun.misc.Base64编码器吗?我个人会使用Base64代码是的,我正在使用sun.misc。。。