بدون دسته بندی

مشکل با openssl_decrypt در php 5.6


سلام دوستان
کد زیر توی نسخه 7 پی اچ پی درست کار میکنه (server.php)
صفحه client مشکل نداره
امکان بروز کردن نسخه php به 7 نیست متاسفانه
برای کار کردنش توی php5 چطور باید اصلاحش کنم؟؟
ی warning میده که تابع openssl_decrypt، پنج تا پارامتر میگیره ولی شما 7 تا پاس کردین بهش…

server.php


<?php
session_start();
$pass = $_POST['password'];

$digest = hash_pbkdf2('sha256', $_SESSION['pass_key'], base64_decode($_SESSION['pass_salt']), 10000, 0, true);
$ct = substr(base64_decode($pass), 0, - 8);
$tag = substr(base64_decode($pass), - 8);
$iv = base64_decode($_SESSION['pass_iv']);

$dt = openssl_decrypt($ct, 'aes-128-ccm', $digest, OPENSSL_RAW_DATA, $iv, $tag, '');
var_dump($dt);
?>

client.php


<?php
session_start();
$_SESSION['pass_salt'] = bin2hex(openssl_random_pseudo_bytes(32));
$_SESSION['pass_key'] = bin2hex(openssl_random_pseudo_bytes(32));
$_SESSION['pass_iv'] = bin2hex(openssl_random_pseudo_bytes(8));
?>
<!DOCTYPE html>
<html>
<head>
<script src="jquery.min.js"></script>
<script src="sjcl.js"></script>
<script>

$(document).ready(function(){
var result = sjcl.encrypt($("#key").val(),"admin@123",{salt:$(" #salt").val(), mode : 'ccm', iv : $("#iv").val() });
var obj = JSON.parse(result);
$("#password").val(obj.ct);
});
</script>
</head>
<body>
<form method="post" action="server.php">
pass : <input name="password" id="password" type="password">
<input type="hidden" id="salt" value="<?= $_SESSION['pass_salt'] ?>">
<input type="hidden" id="key" value="<?= $_SESSION['pass_key'] ?>">
<input type="hidden" id="iv" value="<?= $_SESSION['pass_iv'] ?>">
<input type="submit" value="send">
</form>
</body>
</html>
فایل های ضمیمه


برنامه نویس
جهت کسب اطلاعات بیشتر به انجمن برنامه نویس مراجعه نمایید

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

3 − یک =

همچنین ببینید
بستن
دکمه بازگشت به بالا
WhatsApp chat