2011-12-05 3 views
-4

암호를 md5로 암호화 된 데이터베이스에 저장하고 싶습니다. C#으로 텍스트를 md5로 변환하고 텍스트로 다시 변환하는 방법은 무엇입니까?MD5를 텍스트로 변환하고 다시 변환하십시오.

감사

+0

귀하의 질문에 더 많은 맥락을 추가하십시오 - 달성하려는 것은 무엇입니까? – Oded

+0

MD5 해시 메서드를 통해 텍스트를 실행해도 암호화되지 않습니다. MD5 해싱 방법을 통해 실행 한 값은 한 가지 방법입니다. 원본 텍스트가 없으면 가능한 모든 조합을 시도하지 않으면 원래 값을 얻을 수있는 방법이 없습니다. 단순한 MD5 해시를 사용하여 암호를 저장하지 마십시오. 실제로는 안전하지 않으며 무차별 대입하기 쉽습니다. –

+0

사실이 게시물은 다른 사람들에게 경고로 서버 수 있습니다 아니었다면 나는 그것을 플래그 것입니다! –

답변

10

Hashingencryption 아니다 - 그것은 되돌릴 수 없습니다.

+0

나는 되돌릴 수있는 것이 아니라고 지적하고 싶다. 모든 사람들은 md5와 같은 일부 해싱 방법이 실제로 해독하기 쉽고 따라서 되돌릴 수 있음을 알고 있습니다. 알고리즘이 그 알고리즘을 되돌릴 수 없다는 의미라면 올바른 것입니다. – Rutix

+0

@Rutix - 레인보우 테이블은 조회이므로 일부 MD5 해시가 "되돌릴 수 있음"이됩니다. 그리고 심지어 무지개 표가 생성 된 값 밖에있는 몇 개의 특수 문자를 추가하면 안전합니다. – Oded

+0

네, 당신이 옳다는 것을 알고 있습니다. 나는 단지 당신이 뒤집을 수있는 것으로 정의하는 것에 달려 있다고 지적하고 싶다. :). – Rutix

5

원래 암호로 다시 변환 할 필요가 없습니다. 사용자가 올바른 암호를 입력했는지 확인하려면 해시 값을 해시하고 해당 해시 값을 데이터베이스의 해시 값과 비교해야합니다. 어떤 시점에서도 평문 암호는 다른 것과 비교 될 수 없습니다.

+0

암호를 암호화/해시하기 위해 MD5를 사용해서는 안된다는 사실을 지적하는 것을 잊어 버렸습니다. –

3

암호를 해싱하는 데 MD5를 사용하면 안되며 매우 안전하지 않습니다. 당신이해야 할 일은 사용자 특정 소금을 사용하는 것일 수도 있고, 적어도 1 초가 걸리는 3 가지 해싱 알고리즘 일 수도 있습니다. 1 초가 오래 걸리는 것처럼 보일 수도 있지만 그 점이 중요합니다. 사용자는 사이트에 한 번만 로그인해야하며 크래커는 1 분 동안 60 개의 다른 비밀번호를 사용해 야합니다. 개인적으로 사이트 특정 소금 및 사용자 특정 소금을 사용합니다. 그렇게하면 데이터베이스가 손상되어 암호를 해독 할 수있는 조각이 누락 될 수 있습니다.

+0

사용자 지정 소금을 가지려면 사용자의 세부 정보를 기반으로해야합니다. 3 가지 다른 해싱 알고리즘을 통해 동일한 값을 실행할 이유가 없습니다. 훨씬 나은 해결책은 암호화 알고리즘을 사용하는 것입니다. 그렇지 않으면 각 사용자에게 고유 한 소금 사용에 대한 귀하의 제안이 유효합니다. –

+0

사용자의 세부 정보를 기반으로해야하는 이유는 무엇입니까? 사용자 등록시 또는 PHP 사이트에서 Linux의 URL을 사용하여 사용자 소금을 만들 때 GUID를 만들 수 있습니다. 3 가지 해싱 알고리즘이 필요하지 않지만 루프를 통해 실행하는 경우 프로세서 집약적으로 만들 수 있습니다. – Stephen

+1

해시를 느리게하면 서버 리소스가 빨라집니다. 사이트 외부에서 해킹당하는 사람으로부터 해커를 보호하고 있다면 지연된 응답 (시도 횟수에 따라 졸업 한 경우도 있음)은 동일한 결과를 얻을 수 있습니다.해시 함수를 비싸게 만드는 목적은 해커가 서버에 실제로 들어갈 수 있도록하기 위해서입니다 ... 유용성 때문에 0.1 초에서 1.0 초 정도를 선호합니다. 사용자 암호를 무차별 강요하는 경우 수익이 감소하는 법칙이 있습니다. 1.0s와 0.1s는 해커의 이익면에서별로 다르지 않지만 사용자에게는 여전히 중요합니다. – Brian

0

암호 해시 저장은 암호를 저장하는 것이 아니며 암호를 다시 가져올 수 없습니다. 편도. 그렇지 않으면 암호화라고합니다.

나중에 입력 한 다른 암호의 해시와 비교할 수있는 값을 저장하고 있습니다. 두 해시가 동일한 경우, 암호는 동일 (매우 가능성, 물론 다른 어떤 것으로 - 충분히 큰 공간을 사용하여 좋은 해싱 알고리즘 Gorillas보다 가능성이있는 것으로 해시 충돌을 제외) 당신은에

볼 수 있습니다 Crypto SE에서의 salting vs multiple hashes에 관한이 토론.

관련 문제