Я создаю веб-страницу, чтобы взломать простой MD5 га sh из четырех булавок git для развлечения. Метод, который я использовал, был в основном пробовать все комбинации и проверять по значению MD5, введенному пользователем. Ниже приведен код PHP, который я создал для достижения цели sh.
Вывод отладки:
<?php
$answer = "PIN not found";
if (isset($_GET['md5'])) {
$txt = 'abcdefjhig';
$time_pre = microtime(TRUE);
$value = $_GET['md5'];
$show = 15;
for ($i = 0; $i <= 9; $i++) {
$first = $i;
for ($j = 0; $j <= 9; $j++) {
$second = $j;
for ($k = 0; $k <= 9; $k++) {
$third = $k;
for ($x = 0; $x <= 9; $x++) {
$fourth = $x;
$whole = $first . $second . $third . $fourth;
$check = hash('md5', $whole);
if ($check == $value) {
$answer = $whole;
echo "The pin is $answer";
}
if ($show > 0) {
print"$check $whole \n";
$show = $show - 1;
}
}
}
}
}
echo "\n";
$time_post = microtime(TRUE);
print "Elapsed time:";
print $time_post - $time_pre;
}
?>
Обратите внимание, что в середине есть четыре очень похожих цикла, я попробовал чтобы упростить это с помощью функций, но он просто возвращает одно четыре числа di git, что составляет 9999 вместо всех них. Ниже приведена функция, которую я создал:
function construct($input){
for($i=0; $i<=9, $i++){
$input=$i;
}
return $input
}
Затем я попытался вызвать эту функцию четыре раза, чтобы сформировать все четыре числа di git, но это просто дает мне 9999. Кто-нибудь может помочь? Большое спасибо.