it-gundan.com

SHA-256 암호화 문자열을 해독하는 방법?

다음 방법을 사용하여 인코딩 된 문자열이 있는데이 문자열을 원래 값으로 다시 디코딩하는 방법이 있습니까? 감사.

public synchronized String encode(String password)
        throws NoSuchAlgorithmException, IOException {

    String encodedPassword = null;
    byte[] salt = base64ToByte(saltChars);

    MessageDigest digest = MessageDigest.getInstance("SHA-256");
    digest.reset();
    digest.update(salt);

    byte[] btPass = digest.digest(password.getBytes("UTF-8"));
    for (int i = 0; i < ITERATION_COUNT; i++) {
        digest.reset();
        btPass = digest.digest(btPass);
    }

    encodedPassword = byteToBase64(btPass);     
    return encodedPassword;
}

private byte[] base64ToByte(String str) throws IOException {

    BASE64Decoder decoder = new BASE64Decoder();
    byte[] returnbyteArray = decoder.decodeBuffer(str);

    return returnbyteArray;
}

private String byteToBase64(byte[] bt) {

    BASE64Encoder endecoder = new BASE64Encoder();
    String returnString = endecoder.encode(bt);

    return returnString;
}
46
chiappone

SHA-256암호화 (단방향) 해시 함수 이므로 직접 해독 할 수있는 방법은 없습니다. 암호화 해시 함수의 전체 목적은 실행 취소 할 수 없다는 것입니다.

brute-forceStrategy 는 해시 된 것을 추측 한 다음 동일한 함수로 해시하고 일치하는지 확인하는 것입니다. 해시 된 데이터를 추측하기가 쉽지 않으면 시간이 걸릴 수 있습니다.

" 암호 해시와 암호화의 차이점 "흥미로운 질문이 있습니다.

118
Brendan Long

Sha256은 문자열의 데이터/내용을 암호화하지 않고 입력 문자열을 시드로 사용하여 고정 크기 해시를 생성합니다.

이 경우입니다-백과 사전의 내용을 입력 할 수 있습니다. 백과 사전은 100MB 크기의 텍스트이지만 쉽게 결과 문자열은 256 비트 크기입니다.

해시를 뒤집을 수 없으며 고정 크기 해시에서 100MB의 데이터를 다시 가져 오는 것이 불가능합니다. 할 수있는 최선의 방법은 시드 데이터를 추측/계산하고 해시를 찾은 다음 해시가 해시와 일치하는지 확인하는 것입니다 당신의 휴식을 시도합니다.

해시를 되돌릴 수 있다면 지금까지 가장 큰 압축 형식이됩니다.

31
Baaleos

소금 일명 SSHA를 사용하여 올바른 작업을 수행했습니다.

소금이없는 SHA 및 SHA-2 (또는 SHA-256) 자체는 더 이상 안전한 것으로 간주되지 않습니다! SHA 해시를 소금에 절인 것을 소금에 절인 SHA 또는 SSHA)라고합니다.

다음은 SHA-1을 해시하는 것이 얼마나 쉬운 지에 대한 간단한 예입니다. 많은 노력없이 SHA-2에 대해서도 동일한 작업을 수행 할 수 있습니다.

이 URL에 비밀번호를 입력하십시오. http://www.xorbin.com/tools/sha1-hash-calculator 이 URL에 해시를 붙여 넣기 : http : //www.hashkiller .co.uk/sha1-decrypter.aspx

다음은 SHA-2를 해시하는 페이지입니다. 이 페이지가 작동하는 방식은 누군가 전에 비밀번호를 해시 했어야합니다. 그렇지 않으면 찾을 수 없습니다. md5hashing dot net/hashing/sha256

다음은 "기부"를 위해 다운로드 할 수있는 완전한 SHA-2 테이블이 있다고 주장하는 페이지입니다 (아직 시도하지는 않았습니다) : crackstation dot net/buy-crackstation-wordlist-password-cracking-dictionary.htm

다음은 SHA를 통해 SSHA를 사용해야하는 이유를 설명하는 좋은 기사입니다. crackstation dot net/hashing-security.htm

3
Bernie Lenz

SHA *는 해시 함수입니다. 원본 데이터의 표현 (해시)을 만듭니다. 이 해시는 원래 데이터를 재생성하는 데 사용되지 않습니다. 따라서 암호화가 아닙니다. 오히려 동일한 해시 함수가 동일한 원본 데이터의 서로 다른 두 위치에서 사용되어 동일한 해시가 생성되는지 확인할 수 있습니다. 이 방법은 일반적으로 비밀번호 확인에 사용됩니다.

3
paiego