2014-07-23 4 views
-1

SHA384 해시를 생성 중입니다. 해시를 해독하고 싶습니다. 이 작업을 수행 할 수있는 방법이 있습니까?SHA384 해시를 디코딩하는 방법은 무엇입니까?

따르는 도와주세요하면 해시를 얻을 코드

안전한 암호화 해싱 함수는, 주어진 임의의 길이의 입력을 취소 할 수 없음 이러한 방식으로 고정 길이의 출력에 처리하는 기능 등이다
public String getHash(String message) { 
    String algorithm = "SHA384"; 
    String hex = ""; 
    try { 
     byte[] buffer = message.getBytes(); 
     MessageDigest md = MessageDigest.getInstance(algorithm); 
     md.update(buffer); 
     byte[] digest = md.digest(); 

     for(int i = 0 ; i < digest.length ; i++) { 
      int b = digest[i] & 0xff; 
      if (Integer.toHexString(b).length() == 1) hex = hex + "0"; 
      hex = hex + Integer.toHexString(b); 
     } 
     return hex; 
    } catch(NoSuchAlgorithmException e) { 
     e.printStackTrace(); 
     return null; 
    } 

} 
+1

해시를 해독한다는 것은 무엇을 의미합니까? 해시는 디자인마다 단방향입니다. – Henry

+0

인코딩 및 데코레이션은 http://md5hashing.net/hashing/sha384입니다. – user3864752

+0

이 사이트는 메시지와 해시를 데이터베이스에 저장합니다. 임의 해시에서는 작동하지 않습니다. – Henry

답변

3

(계산 상 불가능). 이러한 기능에는 MD5 및 SHA (Secure Hash Algorithm) 제품군 (1, 224, 256, 384, 512 등)이 포함됩니다.

입력의 해시를 가져 오면 원래 입력으로 돌아 가지 않습니다. 동일한 메시지가 동일한 해시를 생성하면 해시가되므로 메시지 무결성을 확인하는 데이 속성을 사용할 수 있습니다.

방문한 웹 사이트는 해시와 입력을 나란히 저장하고 가능한 입력을 찾기 위해 해시를 데이터베이스에서 조회합니다 (이전에 데이터베이스에 추가 된 경우).

+0

내가 그렇게 할 수 있습니까? 내 자신의 데이터베이스를 생성하여 해시를 저장하고 디코딩을위한 데이터베이스 조회를 수행하는 것과 같습니다. – user3864752

+0

@ user3864752 가능 합니다만 가능한 모든 입력을 저장하려면 무한히 큰 데이터베이스를 만들어야합니다. 나는 당신이 그걸로 무엇을하려하는지 이해하지 못합니다. 그리고 당신이하는 일은'decoding'이라고하지 않고 단순한 테이블 조회입니다. – initramfs

+0

네 맞아. 그러나 또 하나의 문제가 있습니다. 나는 C#에서 암호화하고 안드로이드/자바에서 암호 해독을 원합니다. – user3864752