$myStr = $_GET['myStr'];
if ($myStr == md5($myStr)) echo "ok\n";
코드에 jugglying 유형이 있음을 알고 있지만 테스트에서 조건을 충족시키는 입력을 찾을 수 없습니다.이 조건을 만족하는 문자열을 찾을 수 있습니까?
$myStr = $_GET['myStr'];
if ($myStr == md5($myStr)) echo "ok\n";
코드에 jugglying 유형이 있음을 알고 있지만 테스트에서 조건을 충족시키는 입력을 찾을 수 없습니다.이 조건을 만족하는 문자열을 찾을 수 있습니까?
처음부터 시작해 보겠습니다. 나는 당신이 어쩌면 더 잘 이해할 수 있도록 도와 줄 수있는 모범을 보여 드릴 것입니다. 첫 번째 줄에서
당신은$myStr = $_GET['myStr'];
난 그냥 당신이이처럼 URL에서이 변수를 얻을 것이다 가정합니다 있습니다
http://localhost/md5Project.php?myStr=test
이 당신의 변수 $ myStr에게 값 "테스트"를 제공 할 것입니다. 당신의 if 문에서 앞으로 이동
당신은 : $myStr
값이 "test"
하고 md5($myStr)
값이 너무 기본적으로 098f6bcd4621d373cade4e832627b4f6
당신이 항상 이끌 값 "test"
및 "098f6bcd4621d373cade4e832627b4f6problem"
와 2 문자열을 비교하기 때문에
if ($myStr == md5($myStr)
이 사실이 없을 것 거짓으로.
아니요, myStr
값을 찾을 수 없으므로 MD5에 대한 (1 차 학위) 사전 이미지를 찾지 못합니다. 충돌 저항을 위해 MD5가 손상되었지만 사전 이미지를 찾을 수 없어야합니다. 더 많은 정보 here.
코드가 y = md5(y)
인 것으로 추정됩니다. y = md5(x)
은 좀 더 일반적인 가정이며 위에 링크 된 Wikipedia 기사에서 MD5에 대해서도 H(x)
을 찾을 수 없다고 설명되어 있습니다.
그렇다고해서 MD5를 사용해야하는 것은 아닙니다. SHA-256, SHA-512 또는 실제로 SHA-3 기능 중 하나를 사용하십시오. MD5가 그다지 고장 나지 않았지만, 더 이상 사용되지 않을 정도로 손상되었습니다. "공격은 항상 좋아지며 악화되지 않습니다."
이것은 매우 기본적인 것입니다. 어떤 연구를 할 필요가 있습니다. –
md5, 보안 및 암호화는 다소 위험합니다 .... 요즘에는 보안과 관련하여 md5를 사용해서는 안됩니다. –
Don ' 당신이 원하는 것을 이해하지 못합니다. ther "md5 ($ myStr)"뒤에 ")"를 잊었습니다. –