2010-04-14 4 views
1

인코딩 및 디코딩 MD5에 대한 특정 알고리즘이 있습니까? 친절하게 나에게 적절한 방향이나 지침을 주면 계속 전진 할 수 있습니다 .. 나는 Google에서 많은 검색을하고 있지만 찾을 수 없으며 친절하게 기사 나 튜토리얼 링크를 제공합니다.MD5 가이드 라인이 필요합니다.

+1

가능한 복제본 http://stackoverflow.com/questions/1914461/crc32-and-md5-algorithms-for-dummies – mauris

+2

MD5를 직접 구현 하시겠습니까, 아니면 MD5를 사용하고 싶습니까? 신청? 거의 모든 언어에는 MD5가 구현되어 있으므로 사용자의 관심사가 순수 학문적 인 것이 아니라면 MD5를 구현할 필요가 없습니다. –

+0

MD5를 구현하고 싶습니다. 그래서 저는 먼저 MD5를 듣지 않았기 때문에 먼저 알고리즘에 대한 생각을하고 싶습니다. – Siddiqui

답변

6

MD5는 정의에 따라 디코딩 할 수있는 해싱 알고리즘입니다. 알고리즘에 대한 설명은 Wikipedia을 참조하십시오.

그러나 대부분의 플랫폼에는 구현이 있으므로 알고리즘을 직접 구현할 필요가 거의 없습니다.

먼저 구글 횟수 : http://sourceforge.net/projects/libmd5-rfc/

+0

+1 직접 구현하지 않으 셨습니다. – RichieHindle

+0

ANSI C에서 작업 중이며, MD5의 ANSI C에 라이브러리가 있습니까? – Siddiqui

2

MD5를, "인코딩"또는 "디코드"하지 않습니다. MD5는 가변 크기 입력 (최대 수 테라 바이트까지)을 고정 크기 출력 (128 비트, 일명 16 바이트)으로 변환합니다. MD5의 포인트는 역변환을 계산하지 못하게하는 것입니다.

MD5 specification은 짧고 읽기 쉽고 테스트 벡터와 C 구현을 포함합니다. 많은 프로그래밍 언어/환경에는 MD5 구현이 이미 포함되어 있습니다. 다양한 언어로 MD5 구현을 제공하는 많은 독립적 인 암호화 라이브러리가 있습니다. sphlib에서 C 및 Java 모두에서 MD5에 최적화 된 코드가 포함되어 있는지 확인할 수 있습니다.

MD5는 이제 암호 학적으로 취약한 것으로 간주됩니다. 특히, 좋은 해시 함수가 허용해서는 안되는 충돌 (모든 ​​출력이있는 두 개의 별개의 입력)을 효율적으로 계산하는 방법이 발견되었지만 (충돌은 모든 해시 함수에 필연적으로 존재하지만 실제로 그러한 충돌을 계산할 수는 없습니다. MD5의 경우 (기본 PC에서 약 14 초 분량의 CPU 사용이 쉽다)).

+0

MD5가 역변환 할 수없는 경우 MD5의 목적은 무엇입니까? 크기 만 고정 되었습니까? 우리는 MD5를 사용할 수 있습니까? – Siddiqui

+0

해시 함수 (예 : MD5)의 포인트는 고정 크기 형식으로 문서의 단방향 다이제스트를 계산하는 것입니다. 이것은 디지털 서명을 계산하거나 많은 무결성 검사 절차를 수행하는 첫 번째 단계입니다. MD5는 암호화 기능이 아닙니다. –

관련 문제