Перейти к содержимому


Фотография

Нужна помощь в вопросе перехода с MD5 на SHA256

MD5 SHA256

  • Пожалуйста, авторизуйтесь для ответа.
3 ответов в данной теме

#1 Новичок Псевдонимов (WMID 238975797839 )

  • Группа: Пользователи
  • сообщений 2
  • Регистрация: 07-сентября 15
  • Webmoney BL

Отправлено 07 сентября 2015 - 08:34

Здравствуйте. Помогите пожалуйста правильно изменить код, самостоятельно так и не вышло деньги на баланс при оплате не начисляются а сумма с кошелька переводиться.

 

Проблема собственно скорее всего в правильном написании кода при переходе с подписи MD5 на SHA256. Что нужно изменить?



include "cfg.php";

function er($string, $step) {
    error_log($string . ", step: $step, payment_no: ". $_POST['LMI_PAYMENT_NO']);
    die();
};

$LMI_PREREQUEST		= $_POST['LMI_PREREQUEST'];		// предварительный запрос

$LMI_PAYEE_PURSE	= $_POST['LMI_PAYEE_PURSE'];	// Кошелек продавца
$LMI_PAYMENT_AMOUNT	= $_POST['LMI_PAYMENT_AMOUNT']; // Сумма платежа ();
$LMI_PAYMENT_NO		= $_POST['LMI_PAYMENT_NO'];		// Внутренний номер покупки продавца ();
$LMI_MODE			= $_POST['LMI_MODE'];			// Флаг тестового режима (LMI_MODE);
$LMI_SYS_INVS_NO	= $_POST['LMI_SYS_INVS_NO'];	// Внутренний номер счета в системе WebMoney Transfer;
$LMI_SYS_TRANS_NO	= $_POST['LMI_SYS_TRANS_NO'];	// Внутренний номер платежа в системе WebMoney Transfer

$LMI_SYS_TRANS_DATE	= $_POST['LMI_SYS_TRANS_DATE']; // Дата и время выполнения платежа ();
$LMI_SECRET_KEY		= $_POST['LMI_SECRET_KEY'];		// Secret Key (LMI_SECRET_KEY);
$LMI_PAYER_PURSE	= $_POST['LMI_PAYER_PURSE'];	// Кошелек покупателя ();
$LMI_PAYER_WM		= $_POST['LMI_PAYER_WM'];		// WMId покупателя ().

$LMI_HASH			= $_POST['LMI_HASH'];			// Контрольная подпись

if($LMI_PAYMENT_NO) {
	$get_info = mysql_query("SELECT * FROM enter WHERE id = ".intval($LMI_PAYMENT_NO)." LIMIT 1");
	$row = mysql_fetch_array($get_info);
	$cid				= $row['id'];
	$sum				= $row['sum'];
	$status				= $row['status'];
	$dbLMI_SYS_INVS_NO	= $row['LMI_SYS_INVS_NO'];
	$dbLMI_SYS_TRANS_NO	= $row['LMI_SYS_TRANS_NO'];

	$my_hash = md5($cfgWMZ.$sum.$LMI_PAYMENT_NO.$LMI_MODE.$LMI_SYS_INVS_NO.$LMI_SYS_TRANS_NO.$LMI_SYS_TRANS_DATE.$key.$LMI_PAYER_PURSE.$LMI_PAYER_WM);

		if(($LMI_PREREQUEST == 1 || $LMI_PREREQUEST) && $sum == $LMI_PAYMENT_AMOUNT && $LMI_PAYEE_PURSE == $cfgWMZ) {

			$query = mysql_query("UPDATE enter SET status = 1 WHERE id = ".intval($LMI_PAYMENT_NO)." LIMIT 1");
				if($query) { print "YES"; } else { er('Item not reserved', 3); }

		} elseif($my_hash == strtolower($LMI_HASH) && $status == 1) {

				if(!$LMI_MODE) {

					$query	= "SELECT * FROM enter WHERE id = ".intval($_POST['LMI_PAYMENT_NO'])." LIMIT 1";
					$result	= mysql_query($query);
					$rows	= mysql_num_rows($result);
					if($rows == 1) {
						$date = date("d.m.Y");
						$row = mysql_fetch_array($result);
						mysql_query('UPDATE users SET balance = balance + '.$row[sum].' WHERE login = "'.$row[login].'" LIMIT 1');
						mysql_query("UPDATE enter SET status = 2, wmz = '".addslashes(htmlspecialchars(trim(substr($LMI_PAYER_PURSE,0,13))))."' WHERE id = ".intval($LMI_PAYMENT_NO)." LIMIT 1");

						mysql_query("UPDATE logs SET enter=enter+".$row[sum]." WHERE date='".$date."' LIMIT 1");
						} else {
							print '<p><center><b style="color:red">Не удаётся пополнить счёт!</b></center></p>';
						}

				} else {
					$query = 1;
				}

				if($query) { print "YES"; } else { er('Item not reserved', 4); }

		} else {

			er('Item not reserved', 1);

		}

} else {
	er('Item not reserved', 2);
}

    • 0
  • Наверх

#2 Знаток ^-^ (WMID 273407224562 )

  • Группа: Пользователи
  • сообщений 6 059
  • Регистрация: 10-сентября 13
  • Webmoney BL

Отправлено 07 сентября 2015 - 18:03

Здравствуйте. Помогите пожалуйста правильно изменить код...

Здравствуйте.

Пожалуйста, замените строку:

$my_hash = md5($cfgWMZ.$sum.$LMI_PAYMENT_NO.$LMI_MODE.$LMI_SYS_INVS_NO.$LMI_SYS_TRANS_NO.$LMI_SYS_TRANS_DATE.$key.$LMI_PAYER_PURSE.$LMI_PAYER_WM);

на

$my_hash = hash('sha256', $cfgWMZ.$sum.$LMI_PAYMENT_NO.$LMI_MODE.$LMI_SYS_INVS_NO.$LMI_SYS_TRANS_NO.$LMI_SYS_TRANS_DATE.$key.$LMI_PAYER_PURSE.$LMI_PAYER_WM);

Сообщение отредактировал ^-^: 07 сентября 2015 - 18:04

Бесплатный SSL на 3 мес. / Сертификат SSL от 299 руб.
    • 0
  • Наверх

#3 Новичок Псевдонимов (WMID 238975797839 )

  • Группа: Пользователи
  • сообщений 2
  • Регистрация: 07-сентября 15
  • Webmoney BL

Отправлено 10 сентября 2015 - 11:13

Спасибо большое, решение правильное.


    • 0
  • Наверх

#4 Знаток ^-^ (WMID 273407224562 )

  • Группа: Пользователи
  • сообщений 6 059
  • Регистрация: 10-сентября 13
  • Webmoney BL

Отправлено 10 сентября 2015 - 18:49

В случае правильного ответа стоит нажать такое rep_up.png

Чем больше оценка, тем скорее заметят его остальные участники и гости форума :)


Бесплатный SSL на 3 мес. / Сертификат SSL от 299 руб.
    • 0
  • Наверх





Еще теги с одним или более ключевыми словами: MD5, SHA256