-2
public static byte[] createHash( String stringToHash ) throws UnsupportedEncodingException {

    MessageDigest digestor;

    byte[] byteInput = null;

    try {
        digestor = MessageDigest.getInstance("SHA-1");
        digestor.reset();
        byteInput = digestor.digest( stringToHash.getBytes("UTF-8") );
    } catch( NoSuchAlgorithmException e ){};

    return byteInput;

}

因此,我正在尝试制作一种非常简单的方法,该方法以一种方式加密字符串,尽管我努力通过在线阅读来理解它,但我还是一个完全加密的菜鸟。

问题是我想将此信息存储在文件/数据库中(这真的无关紧要,因为我不是在询问如何获取或插入信息到数据库中)。假设我在文本文件中没有任何盐就非常简单地存储它,我将如何将字节数组写入文本文件?使用单个 for 循环将所有字节扔到文件中还是?因为当我尝试使用我的类时,无论我使用什么字符串,我都会得到相同的字节数组?再次原谅我完全的无知,但是我该如何将字节数组格式化为散列字符串,以便我可以对登录时的用户密码进行简单加密并将两个字符串相互比较?

非常感谢您的帮助,如果您有傲慢的评论和喜欢,请不要完全回答我的帖子!

谢谢!

4

1 回答 1

2

如果要将字节数组存储为字符串,则使用Base64对其进行编码;当您稍后读取字符串时,然后将其解码回字节数组。(例如,如果您想在 URL 中传输字节数组,这也很有用;请注意,生成的字符串将比原始字节数组大 33%)

如果您只想将字节数组写入文件,请使用FileOutputStream#write(byte[] b)

于 2013-04-25T19:52:53.043 回答