Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
Sateur
0 / 0 / 0
Регистрация: 27.01.2016
Сообщений: 15
1

Шифрование в форме php

22.02.2016, 21:15. Просмотров 1123. Ответов 18
Метки нет (Все метки)

HTML5
1
2
3
4
5
<form name="form" form action="post">
<div>Код</div>
<input name="Kod" type="text">
<input type="submit">
</form>
Помогите реализовать xor шифрование в форме php, нужно чтобы в форме вначале была кнопка шифровать, нажав на которую текст в поле Kod будет зашифрован и потом будет кнопка отправить, которая передаст команду обработчику.
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.02.2016, 21:15
Ответы с готовыми решениями:

Шифрование текста на PHP
Нужно реализовать шифрование текста на PHP с использованием алгоритма RSA. Код: &lt;?php function...

Шифрование PHP кода
Доброго времени суток, у меня вот такой вопрос. Чем шифруют этот код? &lt;?php...

Обратимое шифрование в php
Простой пример : &lt;?php // Шифрование данных $кеу = &quot;это КЛЮЧ&quot;; $text = &quot;Сообщение, которое...

Шифрование данных PHP
Доброго времени суток! Сразу скажу, что мои знания в php равняются нулю В этой строке нужно...

Шифрование пароля на php mysql
Как сделать что бы код в бд записывался зашифрованным, а при авторизации она был декодирован Ниже...

18
Пифагор
Модератор
1440 / 1154 / 590
Регистрация: 10.01.2015
Сообщений: 3,817
22.02.2016, 21:49 2
Познавательная статья
1
WhiteMind
Hello Kitty
680 / 554 / 400
Регистрация: 12.02.2016
Сообщений: 1,436
Записей в блоге: 1
22.02.2016, 22:35 3
Цитата Сообщение от Sateur Посмотреть сообщение
Помогите реализовать xor шифрование в форме php, нужно чтобы в форме вначале была кнопка шифровать, нажав на которую текст в поле Kod будет зашифрован и потом будет кнопка отправить, которая передаст команду обработчику.
Опешите задачу конкретней.
0
Sateur
0 / 0 / 0
Регистрация: 27.01.2016
Сообщений: 15
23.02.2016, 00:50  [ТС] 4
Есть PHP форма, с полями Имя, Фамилия, Телефон, Адрес, нажимая Отправить данные уходят на почту.

Мне нужно прикрутить к этой форме простое шифрование, чтобы эти данные шифровались еще на сайте, по алгоритму base64 например и только потом уходили на меил.

Можно сделать или две кнопки рядом под форме "шифровать" и "отправить", а можно чтобы вначале была только шифровать, а после шифрования появлялась "отправить" - Но это уже второстепенная задача, первоначальная выше )
0
23.02.2016, 00:50
WhiteMind
Hello Kitty
680 / 554 / 400
Регистрация: 12.02.2016
Сообщений: 1,436
Записей в блоге: 1
23.02.2016, 02:49 5
Цитата Сообщение от Sateur Посмотреть сообщение
Мне нужно прикрутить к этой форме простое шифрование
а зачем? если хотите чтобы не кто не узнал что в форме прикрутите ssl.
во всех других вариантах защита не надежна
0
sashok991
19 / 19 / 5
Регистрация: 26.12.2013
Сообщений: 158
23.02.2016, 08:59 6
К чему такие сложности, ведь форма все равно обрабатывается через php, вот автоматически и шифровать можно там. Или я что-то не понял?
0
Sateur
0 / 0 / 0
Регистрация: 27.01.2016
Сообщений: 15
24.02.2016, 02:19  [ТС] 7
Ребята, цель не защитить данные, все алгоритмы ломаются и там нет какой-то ценной инфы, просто хочется реализоваться свою задумку, вот и прошу помощи... ) Скрипт по ссылке выше у меня почему то не работает, при нажатии на кнопку, вообще ничего не происходит...

Добавлено через 10 минут
Сорри скрипт из статьи рабочий, буду пробовать совместить его со своей формой

Добавлено через 25 минут
Итак свою форму доработал и добавил две кнопки, одна отвечает за шифрование, вторая за отправку данных. Теперь проблема с этим скриптом из статьи выше


PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?php
$key = "GDSHG4385743HGSDHdkfgjdfk4653475JSGHDJSDSKJDF476354";
 
if($_SERVER['REQUEST_METHOD'] == "POST") {
    $str = $_POST['str'];
    //открываем модуль шифрования и получаем его дискриптор
    $td = mcrypt_module_open(MCRYPT_BLOWFISH,'',MCRYPT_MODE_CFB,'');
    //  получаем размер вектора шифрования на основе дискриптора.
    $iv_size = mcrypt_enc_get_iv_size($td);
    // Создание вектора шифрования
    $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
    // открытие буфера обмена обмена для шифровки данных
    mcrypt_generic_init($td,$key,$iv);
    //  шифруем даные
    $crypt_text = mcrypt_generic($td,$str);
    //  закрываем буфер обмена и модуль
    mcrypt_generic_deinit($td);
    mcrypt_module_close($td);
    
    echo base64_encode($iv.$crypt_text);
    
    $td = mcrypt_module_open(MCRYPT_BLOWFISH,'',MCRYPT_MODE_CFB,'');
    $iv_size1 = mcrypt_enc_get_iv_size($td);
    $iv1 = substr($iv.$crypt_text,0,$iv_size1);
    $crypt_text1 = substr($iv.$crypt_text,$iv_size1);
    mcrypt_generic_init($td,$key,$iv1);
    $text = mdecrypt_generic($td,$crypt_text1);
    mcrypt_generic_deinit($td);
    mcrypt_module_close($td);
    
    echo "<br />".$text;    
}
?>
В моей форме много полей для заполнения

HTML5
1
2
3
<input name="Name" type="text">
<input name="Countre" type="text">
<input name="Phone" type="text">
Как добавить их в этот скрипт, чтобы он шифровал данные в этих полях? Просто из этого примера, я не очень хорошо понял, что именно надо в нем менять, пробовал заменить значение "str" на "Kod" но тогда он не работает...

Добавлено через 7 минут
Так с этим вроде тоже разобрался... возникла другая проблема, как его исправить, чтобы зашифрованный текст оставался в поле ввода, а не выводился поверх него? Просто из-за этого, обработчик формы тупо не видит данные из формы, потому что скрипт выводит данные не в поля формы...
0
Gcom
82 / 82 / 18
Регистрация: 03.02.2016
Сообщений: 563
Записей в блоге: 1
24.02.2016, 07:46 8
Sateur, ВотЪ
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<?php
header ("Content-Type:text/html; charset=UTF-8");
ini_set ('display_errors', 1); 
error_reporting (E_ALL);
 
$sTextarea = '';
$sName = '';
$sCountre = '';
$sPhone = '';
 
function getDataEncryption($sData) {
    $key = "GDSHG4385743HGSDHdkfgjdfk4653475JSGHDJSDSKJDF476354";
    $sResult = '';
    $td = '';
    $iv_size = '';
    $iv = '';
    $crypt_text = '';
    $td = mcrypt_module_open(MCRYPT_BLOWFISH,'',MCRYPT_MODE_CFB,'');
    $iv_size = mcrypt_enc_get_iv_size($td);
    $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
    mcrypt_generic_init($td,$key,$iv);
    $crypt_text = mcrypt_generic($td,$sData);
    mcrypt_generic_deinit($td);
    mcrypt_module_close($td);
    $sResult = base64_encode($iv.$crypt_text);
    
    return $sResult;
}
 
if(isset($_REQUEST['Name']) && isset($_REQUEST['Countre']) && isset($_REQUEST['Phone'])) {
    $sName = getDataEncryption($_REQUEST['Name']);
    $sCountre = getDataEncryption($_REQUEST['Countre']);
    $sPhone = getDataEncryption($_REQUEST['Phone']);
};
 
$sTextarea = '$sName = '.$sName.'<br>$sCountre = '.$sCountre.'<br>$sPhone = '.$sPhone;
?>
<form method="post">
<table border="0" cellpadding="10" cellspacing="10">
<input name="Name" type="text">
<input name="Countre" type="text">
<input name="Phone" type="text">
<br>
<input type="submit" name='submit' value="Шифровать">
<br>
<? echo $sTextarea; ?>
</form>
1
Sateur
0 / 0 / 0
Регистрация: 27.01.2016
Сообщений: 15
24.02.2016, 20:46  [ТС] 9
Моя форма

PHP
1
2
3
4
5
6
7
8
<form method="post">
<div>Name</div><input type="text" name="Name">
<div>Countre</div><input type="text" name="Countre">
<div>Phone</div><input type="text" name="Phone">
<br><br>
<input type="submit" value="Шифровать">
<input type="submit" formaction="Send" value="Отправить">
</form>
Gcom, форма из этого скрипта выглядит так и текст выводит внизу
https://imgdepo.com/id/i8991786

А надо вот так...
http://imgdepo.com/thumb/2016/Feb/24/bc34c623.jpg
http://imgdepo.com/thumb/2016/Feb/24/56fe01ee.jpg
0
Gcom
82 / 82 / 18
Регистрация: 03.02.2016
Сообщений: 563
Записей в блоге: 1
25.02.2016, 04:57 10
Лучший ответ Сообщение было отмечено Sateur как решение

Решение

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<?php
header ("Content-Type:text/html; charset=UTF-8");
ini_set ('display_errors', 1); 
error_reporting (E_ALL);
 
$sName = '';
$sCountre = '';
$sPhone = '';
 
function getDataEncryption($sData) {
    $key = "GDSHG4385743HGSDHdkfgjdfk4653475JSGHDJSDSKJDF476354";
    $sResult = '';
    $td = '';
    $iv_size = '';
    $iv = '';
    $crypt_text = '';
    $td = mcrypt_module_open(MCRYPT_BLOWFISH,'',MCRYPT_MODE_CFB,'');
    $iv_size = mcrypt_enc_get_iv_size($td);
    $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
    mcrypt_generic_init($td,$key,$iv);
    $crypt_text = mcrypt_generic($td,$sData);
    mcrypt_generic_deinit($td);
    mcrypt_module_close($td);
    $sResult = base64_encode($iv.$crypt_text);
    
    return $sResult;
}
 
if(isset($_REQUEST['Name']) && isset($_REQUEST['Countre']) && isset($_REQUEST['Phone'])) {
    $sName = getDataEncryption($_REQUEST['Name']);
    $sCountre = getDataEncryption($_REQUEST['Countre']);
    $sPhone = getDataEncryption($_REQUEST['Phone']);
} else {
    $sName = '';
    $sCountre = '';
    $sPhone = '';
};
?>
<form method="post">
<table border="0" cellpadding="10" cellspacing="10">
Name<br><input name="Name" type="text" value = "<?php echo($sName); ?>"><br>
Countre<br><input name="Countre" type="text" value = "<?php echo($sCountre); ?>"><br>
Phone<br><input name="Phone" type="text" value = "<?php echo($sPhone); ?>"><br>
<input type="submit" name='submit' value="Шифровать">
<input type="submit" name='send' value="Отправить"><br>
</form>
1
Sateur
0 / 0 / 0
Регистрация: 27.01.2016
Сообщений: 15
25.02.2016, 08:29  [ТС] 11
Огромное спасибо!!! Теперь все работает как швейцарские часы ))) Правда есть еще вопрос, по дешифрованию, в данном примере используется алгоритм BLOWFISH с ключом GDSHG4385743HGSDHdkfgjdfk4653475JSGHDJSDSKJDF476354 и я нашел несколько онлайн сервисов для расшифровки текста, но все они выдают неверный результат... дело в скрипте или попробовать другой алгоритм?
0
Gcom
82 / 82 / 18
Регистрация: 03.02.2016
Сообщений: 563
Записей в блоге: 1
25.02.2016, 08:59 12
Цитата Сообщение от Sateur Посмотреть сообщение
дело в скрипте или попробовать другой алгоритм?
За основу брал этот пример:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
// шифруем
$key = "GDSHG4385743HGSDHdkfgjdfk4653475JSGHDJSDSKJDF476354";
$str = username;
 
//открываем модуль шифрования и получаем его дискриптор
$td = mcrypt_module_open(MCRYPT_BLOWFISH,'',MCRYPT_MODE_CFB,'');
 
//  получаем размер вектора шифрования на основе дискриптора.
$iv_size = mcrypt_enc_get_iv_size($td);
 
// Создание вектора шифрования
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
 
// открытие буфера обмена, для шифровки данных
mcrypt_generic_init($td,$key,$iv);
 
//  шифруем даные
$crypt_text = mcrypt_generic($td,$str);
 
//  закрываем буфер обмена
mcrypt_generic_deinit($td);
mcrypt_module_close($td);
 
$login = base64_encode($iv.$crypt_text);
echo  $login;
 
 
// расшифровываем
$td = mcrypt_module_open(MCRYPT_BLOWFISH,'',MCRYPT_MODE_CFB,'');
$iv_size1 = mcrypt_enc_get_iv_size($td);
 
//получаем вектор инициализации:
$iv1 = substr($iv.$crypt_text,0,$iv_size1);
 
// вырезаем часть строки, от нуля, до значения переменной $iv_size1 
// (длина вектора инициализации)
$crypt_text1 = substr($iv.$crypt_text,$iv_size1);
 
//открываем буфер обмена
mcrypt_generic_init($td,$key,$iv1);
 
//вызываем функцию расшифровки данных:
$login = mdecrypt_generic($td,$crypt_text1);
 
mcrypt_generic_deinit($td);
mcrypt_module_close($td);
 
echo "<br />".$login;
0
Sateur
0 / 0 / 0
Регистрация: 27.01.2016
Сообщений: 15
26.02.2016, 02:39  [ТС] 13
В этом примере есть лишь отображение исходного и зашифрованного текста... Я имел ввиду другое, в примере который Вы сделали ранее, все работает и после нажатия кнопки отправить этот зашифрованный текст отправляется мне на почту, вопрос в том, как после этого его расшифровать?

Может попробовать что-то попроще Base64 без ключа или aer-256 с ключом... если возможно ))) просто чтобы можно было этот зашифрованный текст потом свободно расшифровать...
0
Gcom
82 / 82 / 18
Регистрация: 03.02.2016
Сообщений: 563
Записей в блоге: 1
26.02.2016, 07:06 14
Sateur, можно и проще хозяин барин , посмотрите тут, кто Вам мешает использовать "двойное" хеширование по разным алгоритмам шифрования.
1
Sateur
0 / 0 / 0
Регистрация: 27.01.2016
Сообщений: 15
06.03.2016, 16:10  [ТС] 15
Ребята, вопрос актуален, как сделать такую же форму php, только уже с расшифровкой ранее зашифрованного текста из примера выше?

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<?php
header ("Content-Type:text/html; charset=UTF-8");
ini_set ('display_errors', 1); 
error_reporting (E_ALL);
 
$sName = '';
$sCountre = '';
$sPhone = '';
 
function getDataEncryption($sData) {
    $key = "GDSHG4385743HGSDHdkfgjdfk4653475JSGHDJSDSKJDF476354";
    $sResult = '';
    $td = '';
    $iv_size = '';
    $iv = '';
    $crypt_text = '';
    $td = mcrypt_module_open(MCRYPT_BLOWFISH,'',MCRYPT_MODE_CFB,'');
    $iv_size = mcrypt_enc_get_iv_size($td);
    $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
    mcrypt_generic_init($td,$key,$iv);
    $crypt_text = mcrypt_generic($td,$sData);
    mcrypt_generic_deinit($td);
    mcrypt_module_close($td);
    $sResult = base64_encode($iv.$crypt_text);
    
    return $sResult;
}
 
if(isset($_REQUEST['Name']) && isset($_REQUEST['Countre']) && isset($_REQUEST['Phone'])) {
    $sName = getDataEncryption($_REQUEST['Name']);
    $sCountre = getDataEncryption($_REQUEST['Countre']);
    $sPhone = getDataEncryption($_REQUEST['Phone']);
} else {
    $sName = '';
    $sCountre = '';
    $sPhone = '';
};
?>
<form method="post">
<table border="0" cellpadding="10" cellspacing="10">
Name<br><input name="Name" type="text" value = "<?php echo($sName); ?>"><br>
Countre<br><input name="Countre" type="text" value = "<?php echo($sCountre); ?>"><br>
Phone<br><input name="Phone" type="text" value = "<?php echo($sPhone); ?>"><br>
<input type="submit" name='submit' value="Шифровать">
<input type="submit" name='send' value="Отправить"><br>
</form>
0
WhiteMind
Hello Kitty
680 / 554 / 400
Регистрация: 12.02.2016
Сообщений: 1,436
Записей в блоге: 1
06.03.2016, 16:45 16
что вы хотите сделать?
0
Sateur
0 / 0 / 0
Регистрация: 27.01.2016
Сообщений: 15
06.03.2016, 17:01  [ТС] 17
Мне нужно чтобы теперь в этой форме php, текст наоборот расшифровывался... сейчас нашел только один рабочий сервис, который сумел верно расшифровать BLOWFISH CFB...
0
WhiteMind
Hello Kitty
680 / 554 / 400
Регистрация: 12.02.2016
Сообщений: 1,436
Записей в блоге: 1
06.03.2016, 17:02 18
все равно не понятно не чего
0
Sateur
0 / 0 / 0
Регистрация: 27.01.2016
Сообщений: 15
06.03.2016, 18:20  [ТС] 19
Есть еще такой вопрос, в этом коде получается что кнопку шифровать можно жмякать сколько угодно и шифроваться будет продолжать уже зашифрованный текст, вплоть до 500 символом и больше... это слишком круто для меня, можно ли ограничить нажатие на нее или сделать не активной после одного нажатия, сохранив работоспособность?

Пробовал добавить это, кнопка становится неактивной, но и обработка не идет...
PHP
1
onclick="this.disabled=true;"
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<?php
header ("Content-Type:text/html; charset=UTF-8");
ini_set ('display_errors', 1); 
error_reporting (E_ALL);
 
$sName = '';
$sCountre = '';
$sPhone = '';
 
function getDataEncryption($sData) {
    $key = "GDSHG4385743HGSDHdkfgjdfk4653475JSGHDJSDSKJDF476354";
    $sResult = '';
    $td = '';
    $iv_size = '';
    $iv = '';
    $crypt_text = '';
    $td = mcrypt_module_open(MCRYPT_BLOWFISH,'',MCRYPT_MODE_CFB,'');
    $iv_size = mcrypt_enc_get_iv_size($td);
    $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
    mcrypt_generic_init($td,$key,$iv);
    $crypt_text = mcrypt_generic($td,$sData);
    mcrypt_generic_deinit($td);
    mcrypt_module_close($td);
    $sResult = base64_encode($iv.$crypt_text);
    
    return $sResult;
}
 
if(isset($_REQUEST['Name']) && isset($_REQUEST['Countre']) && isset($_REQUEST['Phone'])) {
    $sName = getDataEncryption($_REQUEST['Name']);
    $sCountre = getDataEncryption($_REQUEST['Countre']);
    $sPhone = getDataEncryption($_REQUEST['Phone']);
} else {
    $sName = '';
    $sCountre = '';
    $sPhone = '';
};
?>
<form method="post">
<table border="0" cellpadding="10" cellspacing="10">
Name<br><input name="Name" type="text" value = "<?php echo($sName); ?>"><br>
Countre<br><input name="Countre" type="text" value = "<?php echo($sCountre); ?>"><br>
Phone<br><input name="Phone" type="text" value = "<?php echo($sPhone); ?>"><br>
<input type="submit" name='submit' value="Шифровать">
<input type="submit" name='send' value="Отправить"><br>
</form>
Добавлено через 2 минуты
WhiteMind что вам не понятно? полученный результат надо расшифровать
0
06.03.2016, 18:20
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.03.2016, 18:20

Шифрование php кода? Серьезно?
Доброго времени суток. Тут, на форуме, увидел как некоторые личности расшифровывают и зашифровывают...

Работа с сессиями php и шифрование паролей
в чем суть. есть два УРЛА test1.ru/blog/ test1.ru/blog/index.php они вроде не отличаются, но ...

Как сделать такое шифрование на php?
http://www.cyberforum.ru/java-j2se/thread2283527.html


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru