2013-04-25 52 views
-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; 

} 

所以我试图做一个非常简单的方法,其中一种方式加密一个字符串,我是一个完全加密noob,尽管我努力通过在线阅读来理解它。单向加密,将散列字符串保存到文件中?

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

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

谢谢!

+0

我觉得很奇怪,有人回答正确,如果它真的是模糊,不完整,过于宽泛和修辞?什么是修辞呢?不管怎么说,我找到了我需要的帮助。 – ObedMarsh 2013-04-29 18:41:07

回答

2

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

如果你只是想写一个字节数组到一个文件,然后使用FileOutputStream#write(byte[] b)

+0

我不知道为什么我会受到伤害,也许是因为他们无法回答像你这样的问题吗?无论如何,我试图使用Base64类,因为你建议,但我不知道我应该如何导入它,日食似乎并不想为我承认它?再次赦免我的无知,但我只是想了解这里的方式和原因。 – ObedMarsh 2013-04-29 16:11:37

+0

您需要下载[Apache codec](http://commons.apache.org/proper/commons-codec/)jar并将其导入到Eclipse项目中。该罐子在颠覆中可用;你需要一个颠覆客户端来获取它,我推荐[TortoiseSVN](http://tortoisesvn.net/)。 – 2013-04-29 16:14:58

+0

好吧,现在他们真的很生气,但是感谢那些信息,这正是我一直在寻找的。 – ObedMarsh 2013-04-29 18:38:45

相关问题