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

} 

그래서 저는 문자열을 암호화하는 매우 간단한 방법을 만들려고 노력하고 있습니다. 온라인으로 읽음으로써 그것을 이해하기위한 노력에도 불구하고 총 암호화 멍청합니다.해시 된 문자열을 파일에 저장하는 단방향 암호화?

이 정보를 파일/dbase에 저장하고 싶습니다 (실제로는 dbase에 정보를 가져 오거나 삽입하는 방법을 묻지 않으므로 관련이 없습니다). 내가 텍스트 파일에 소금을 넣지 않고 매우 간단하게 저장한다고 가정 해 봅시다. 바이트 배열을 텍스트 파일에 어떻게 써야합니까? 하나의 for 루프를 사용하여 모든 바이트를 파일에 던지거나? 왜냐하면 내가 사용하는 문자열에 상관없이 클래스를 사용하려고 할 때 동일한 바이트 배열을 얻게 되었기 때문입니다. 다시 완전히 용서해주십시오.하지만 바이트 배열을 해시 문자열로 포맷하면 로그인하는 사용자 비밀번호를 간단하게 암호화하고 두 문자열을 서로 비교할 수 있습니까?

오타와 같은 의견이 있으시면 도움을 주시면 감사하겠습니다. 내 게시물에 완전히 응답하지 마시기 바랍니다.

감사합니다.

+0

정말 모호하고, 불완전하고, 광범위하고 수사학 인 경우 누군가가 정확하게 대답 한 것이 이상하다는 것을 알았습니까 ??? 그것에 대해 수사 학적으로 무엇입니까? 어쨌든 나는 내가 필요한 도움을 찾지 못했다. – ObedMarsh

답변

2

바이트 배열을 문자열로 저장하려면 Base64을 사용하여 인코딩합니다. 나중에 문자열을 읽을 때 바이트 배열로 다시 디코딩하십시오. 예를 들어 URL에 바이트 배열을 전송하려는 경우 유용합니다 (최종 바이트 배열보다 약 33 % 큰 문자열이 생성됩니다)

바이트 배열을 파일을 누른 다음 사용 FileOutputStream#write(byte[] b)

+0

나는 왜 네가 어쩌면 쓸데없는 짓을하는지 모르겠다. 너 같은 질문에 대답을 못 하겠어. 어쨌든 당신이 제안한대로 Base64 클래스를 사용하려고하지만 정확히 어떻게 수입해야하는지 잘 모르겠지만 이클립스는 나를 위해 그것을 인식하고 싶지 않습니다. 다시 한 번 내 무지를 용서하지만, 나는 어떻게 그리고 왜 여기에 있는지 이해하려고 노력하고있다. – ObedMarsh

+0

[Apache codec] (http://commons.apache.org/proper/commons-codec/) jar를 다운로드하여 Eclipse 프로젝트로 가져와야합니다. 병은 파괴에 유효하다; 그것을 얻으려면 Subversion 클라이언트가 필요합니다. 나는 [TortoiseSVN] (http://tortoisesvn.net/)을 추천합니다. –

+0

이제 그들은 정말 화가 났지만, 정보를 주셔서 감사합니다. 내가 찾던 정보였습니다. – ObedMarsh

관련 문제