当前位置: 首页 > 面试题库 >

在我的加密字符串上追加新行

堵宏毅
2023-03-14
问题内容

在主要:

public static void main(String[] args) throws NoSuchAlgorithmException {
    System.out.println("encrypt:" + encryptPassword("superuser")+":" );
}

public static String encryptPassword(final String password) throws NoSuchAlgorithmException {
    MessageDigest md = MessageDigest.getInstance("MD5");
    byte[] hashPassword = md.digest(password.getBytes());
    String encryPass = Base64.encodeBase64String(hashPassword);
    return encryPass;
}

我得到以下输出:

encrypt:C66i8K4gFQ23j1jN2sRCqQ==:

但是,当我在应用程序中实现相同的操作时,将得到以下输出:

encrypt:C66i8K4gFQ23j1jN2sRCqQ==
:

注意: 在我的加密字符串上追加了新行。

应用代码

public boolean authenticateUsernamePasswordInternal(UsernamePasswordCredentials credentials) {
    try {
        System.out.println("encrypt:" + getHash("superuser")+":" );
    } catch (Exception e) {
        logger.error(e.getMessage(), e);
        throw new BadCredentialsAuthenticationException(ErrorConstants.CONNECTION_FAILED);
    }
}

private String getHash(String password) throws NoSuchAlgorithmException, UnsupportedEncodingException{  
    MessageDigest md = MessageDigest.getInstance("MD5");
    byte[] hashPassword = md.digest(password.getBytes());
    String encryPass = Base64.encodeBase64String(hashPassword);
    return encryPass;
}

我如何删除多余的新行。为什么会这样,请帮助我 是什么原因?


问题答案:

我回答这个问题可能很晚,但是遇到了同样的问题。其实问题就在这里 Base64.encodeBase64String(hashPassword)

更改该行以使其看起来像这样: Base64.encodeBase64String(hashPassword,Base64.NO_WRAP)

默认情况下,Android Base64 util在编码字符串的末尾添加换行符。Base64.NO_WRAP标志告诉util创建不含换行符的编码字符串。

在这里检查



 类似资料:
  • 问题内容: 在每篇文章中,“如何向JEditorPane附加字符串?”问题的答案。就像 我已经试过了: 结果,我得到了“终止时间:1000”,而没有“进程的分布:” 为什么会发生这种情况??? 问题答案: 我怀疑这是附加文本的推荐方法。这意味着每次更改某些文本时,都需要重新解析整个文档。人们之所以这样做,是因为他们不了解如何使用JEditorPane。包括我在内。 我更喜欢使用JTextPane然

  • 我能用下面两条语句具体解释一下内存和运行时开销吗? > String CONST=字符串常量;StringBuilder sb1=new StringBuilder(); sb1.append(CONST); StringBuilder sb2=新的StringBuilder() sb2。附加(“字符串常量”); second是否创建字符串对象和外接程序stringpool?是否有任何场景(也考虑

  • append key value 返回新字符串值的长度。

  • 我正在编写一个程序,以这种方式加密一个给定的字符串: 如果我们有一个整数V和一个只有元音的数组v={a,e,I,o,u}如果字符串的字母是一个元音,那么用它前面V个位置的元音替换它,只考虑元音的数组(不是整个字母表!). 要明确: 所以为了解决我的问题,我写了: 代码采用字符串的每个元素来验证它是否是元音,然后如果它是元音,则将字符串的考虑元素替换为 V 位置之前的元音。 如果字符串只有元音 i,

  • V1.1.1新增 <?php $string='666666'; $string=sp_authencode($string);//加密字符串 echo $string;//输出加密后的字符串 ?>

  • 问题内容: 我在我的iPhone应用程序中使用Objective C中的加密类,但是我在努力通过Android应用程序在JAVA中使用相同的功能。我的加密代码如下: 我试图在JAVA中复制它,但是当我编码相同的数据时却得到了不同的字符串。所以我做错了事,但我无法弄清楚。这是我的JAVA代码: 谁能看到我要去哪里错了? 根据以下注释,我添加了getBytes,但是生成的字符串仍然不同: 问题答案: