이 있을 찾는 방법이 어떤 종류의 암호화/인코딩을 사용하고 있습니까?
예를 들어,내가 테스트는 웹 응용 프로그램을 저장하는 암호 데이터베이스 암호화된 형식으로(WeJcFMQ/8+8QJ/w0hHh+0g==
). 어떻게 무엇인지 결정하고 해시하거나 암호화를 사용하고 있습니까?
예제의 문자열은(WeJcFMQ/8+8QJ/w0hHh+0g==
)은 Base64 인코딩 순서는 16 바이트처럼 보이지 않는 의미있는 ASCII 또는 UTF-8 입니다. If 이 값 저장에 대한 암호 verification(예:정"암호화"비밀번호,오히려"해"암호)그런 다음 이것은 아마도 그 결과의 해쉬 기능을 통해 계산된 암호이다;하나의 클래식 해쉬 기능을 가진 128 비트 출력 MD5. 하지만 그것에 대해 수 있습니다.
"정상"는 방법을 알아 보 응용 프로그램 코드입니다. 응용 프로그램 코드에 성육신유형,지방 방식(실행 파일은 서버에 있는 파일,소스 코드를 어딘가에...)지할 수 없습니다,많으로 보호되는 비밀키를 할 수 있습니다. 그래서 리버스 엔지니어링이"길을 갈".
을 제외하고,리버스 엔지니어링 분야 만들 수 있습니다 몇 가지 실험하게 만들려고 추측:
는 경우-같은 사용자"변화"자신의 비밀번호하지만 다시 사용,동일가 저장된 값이 변경되는? 그렇다면,값의 일부입니다 아마 무작위"금"나 IV(가정대칭 암호화). 가정 값 결정에 암호를 지정한 사용자는 경우에,두 개의 사용자가 동일한 암호를 선택하는가,그것은 결과 같은 저장된 값은? 지 않는 경우,다음의 사용자 이름은 아마의 일부 의존하고 있습니다. 당신이 하려고 할 수 있습을 계산하는 MD5("username:password")또는 다른 비슷한 개,를 얻을 수 있는지 확인하기 위해 일치합니다. -암호의 길이 제한? 즉,설정하는 경우 40 자의 암호를 성공적으로 인증에 의해 입력하는 첫 번째 39 문자,그 다음 이미 모든 문자는 중요한,그리고 이것이 의미하는 것이 정말입 비밀번호 hashing,지 encryption(저장된 값을 확인하는 데 사용되는 암호를 그러나 비밀번호에서 복구 할 수 없습니다 저장된 값은 혼자).
편집:에게 아주 멋진 라는 스크립트hashID. 이름 꽤 많에 대해 설명합니다.
일반적으로 사용하는 경험을 추측이 어떻게 이런 일은 할 수 있습니다.
여기에는 목록은 매우 큰 숫자 해시의 출력은 그래서 당신이 알고있는 방법을 각각 하나의 보고를 만들은 서명/재잘거나 광학적으로 확인합니다.
-[온라인 해쉬 균열 해시 발전기](https://www.onlinehashcrack.com/hash-generator.php)
-[InsidePro 소프트웨어 포럼>Hash 유형](https://web.archive.org/web/20160403135857/https://forum.insidepro.com/viewtopic.php?t=8225)(via Archive.org)
두 가지가 있*주요 것들*당신은 처음에 주의:
의 길이-이 해시(각 해시 함수가 특정한 출력을 길이)
-사용되는 알파벳(모두 영어가? 숫자 0-9 와 A-F 그래서 육? 어떤 특별한 문자가 있다면?)
여러 가지 암호 해독 프로그램(존 더 리퍼 예를 들어)를 적용 패턴 매칭에 입력 추측하는 알고리즘을 사용되지만,이는 작품에서 일반적인 해시입니다. 예를 들어,만약 당신이 어떤 해시 출력 및 회전하여 각 문자를 1,대부분의 패턴 매칭 방식은 실패합니다.
당신이 무엇을 게재하고 있는 16 바이트(128 비트)의 기본 64 로 인코딩된 데이터입니다. 다는 사실 기반 64 로 인코딩되지 않't 은 우리에게 많은 것을 말하기 때문에 기본 64 지 않는 암호/해싱 알고리즘 그것은 방법이다 인코딩하는 바이너리로 데이터를 텍스트입니다. 즉,이 블록에 포함된 유용한 정보의 조각,즉 것 출력이 16 바이트 길이입니다. 우리가 비교할 수 있습니다 이를 블럭의 크기는 일반적으로 사용되는 방식과 그것이 무엇인지 알아낼 수 있't. 가장 일반적인 방식은:
SHA-1(160bits) MD5(128 비트) AES(128 비트) DES(64 비트) *3DES(64 비트)
다음은 우리가 해야 할 다른 블록 암호화 텍스트림 응답을 다음과 같은 질문:
*는 모든 암호 텍스트,동일한 길이라도 다양한 입력 길이가?
하지 않을 경우 모든 블록은 동일한 길이 다음을 하지't 에서 찾고 해싱 알고리즘,그러나 암호화 하나입니다. 이후 출력이 항상 여러의 기본 블록 크기의 존재를 차단하지 않는 균등하게 나눌 수 있는 16 바이트의 의미는 그것을 할 수 없 AES 따라서해야 합 DES 또는 3DES.
할 수 있는 기능이 있는 경우에 암호 및 관찰하는 출력 이 결정할 수 있습니다. 그냥 넣어서 17 자 암호를 보면 길이 있습니다. 는 경우에는 그는 16 바이트를 MD5,20 는 바이트단 SHA-1,24 바이트단 DES 또는 3DES,32 바이트단 AES.
이에 따라 달라집 서식-일 프로토콜을 저장하기 위한 암호화된 텍스트가 일반 텍스트 부분을 정의하는 방법 it's 암호화되어 있습니다. 귀하의 예제에서,나는'm 의심스럽기 때문자열을 참조는 그래서 짧은 것처럼 보이는 그's 암호화된 텍스트입니다.
나는'd 몇 가지를 제안 생각:
-면"=="끝에 확실히 패딩,그렇지 않't 포함하는 것에 어떤 암호 해독을 시도합니다.
-처리할 수 있습 해시거나 소금에 절인 해시,보다는 암호화 합니다. 이 경우에 노력하고,"해독"데이터는 원't 업의 일치를 사용하여 암호를 같은 해시 및/또는 소금은 값을 사용합니다. 방법은 없으로 소금에 절인 비밀번호는 원래 값입니다.
-당신의 절대 최선의 방법은의 사본을 얻을하는 데 사용되는 코드를 저장할 암호. 어딘가에,암호를 겪고 있는 암호화 작업입니다. 을 찾을 배울 수있는 코드는 무엇's 습니다. 9 번의 10,그들은 사용하여 어떤 종류의 위한 API 를 이 해시/소금에 절인/암호화하고 당신이 모방할 수 있는 또 그것을 반대를 사용하여 동일한 API 를 사용합니다.
인코딩을 할 수 있는 일반적으로 추측 할 수 있습니다. 예를 들어,문자열에 게시된 질문을 Base64 로 인코딩된. Equals signs 는 패딩 Base64 체계입니다. 는's 무언가 나에는 시력에서 찾을 수 있습니다.
는 경우에 당신은 나에게 암호화된 문자열,내가 당신에게 말할 수 있는 인코딩 하지만 나는't 말해 당신에게 알고리즘을 사용하여 암호화하지 않으면 일종의 메타데이터를 사용할 수 있습니다. 그 이유는 이:암호화 알고리즘 작품을 생산하여 나타나는 것이 임의의 데이터입니다. 면 나는 암호화된 두 문장을 각각 두 개의 암호(네 개의 출력),할 수 없는 것을 말해 어떠한 자신감을 가하는 암호문에 속하는 암호화하지 않는 한 당신이 해독된 또는 부러 암호화를 사용하여 암호화됩니다.
에 관련하여 특정한 경우 암호가 일반적으로 해시. 는 의미할 수 있't 호에 해시,하지만 당신은에 액세스할 수 없는 경우 해시의 일치에 대한 암호입니다. 그런 측면에서[@존's답변황금입니다. 는 경우에 입력할 수 있는 비밀번호를 알고 있는 그리고 일반적인 계획에 대해 그것은,당신은 것을 배울 수 있는 해시 사용됩니다.
는 경우 이것은 참으로 간단한 암호 해시,우리가 할 수 있용하는 균열이다. Base64 드 검색에 대한,하지만,모든 그 슬래시 플러스 표지판,그래서 그's 첫번째로 변환하는 해시으로 진수:
$ perl -MMIME::Base64 -le 'print unpack "H*", decode_base64 "WeJcFMQ/8+8QJ/w0hHh+0g=="'
59e25c14c43ff3ef1027fc3484787ed2
이제 우리가 할 수 있Google 한다. 지금이 순간,나는'm getting하나만 hit에서md5this.com—지만 분명히 있는 것이 매우 빨리 더 포함하여,이 게시물입니다.
불행히도(또는 아마 다행히도,당신의 관점에 따라),우리는'다시 없을 정도로 운이 실제로 찾기 프리 이미지(의 현재 사이트에 목록을 이 해시 as"균열...")지만,사실 그것이's 에는 목록에서 모든지 않는 것이 좋 it's 참으로 무염 MD5 해쉬의 암호입니다.