powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / криптография
3 сообщений из 3, страница 1 из 1
криптография
    #32698810
impus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
подскажите, пожалуйста.
Вот смотрите шифровать строку уже научился, а вот как зная ключ и шифр-текст
расшифровать ее.
вот функция, которая зашифровывает.

function shifr($string,$kl)
{
/* Открыть шифр */
$td = mcrypt_module_open ('rijndael-256', '', 'ofb', '');

/* Создать IV и определить длину keysize */
srand(make_seed());
$iv = mcrypt_create_iv (mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
$ks = mcrypt_enc_get_key_size ($td);

/* Создать ключ */
$key = substr (md5 ($kl), 0, $ks);

/* Инициализировать шифрование */
mcrypt_generic_init ($td, $key, $iv);

/* Шифровать данные */
$encrypted = mcrypt_generic ($td, $string);
mcrypt_module_close ($td);
return $encrypted ;
}

напишите обратную функцию на php
...
Рейтинг: 0 / 0
криптография
    #32698872
*
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
*
Гость
...
Рейтинг: 0 / 0
криптография
    #32698926
impus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот написал. Вопрос - правильно ли. Вместе оно конечно проходит,
но важно, что функции будут запускаться поотдельности. У меня
и вопрос - будет ли строка, зашифрованная на одном сервере (shifr())
расшифровываться на другом.(deshifr())
зачем во второй функции нужнен $iv = mcrypt_create_iv ($iv_size, MCRYPT_RAND);



<?php

function shifr($plain_text,$key)

{
/* Открывает модуль и создаёт IV */
$td = mcrypt_module_open ('des', '', 'ecb', '');
$key = substr ($key, 0, mcrypt_enc_get_key_size ($td));
$iv_size = mcrypt_enc_get_iv_size ($td);
$iv = mcrypt_create_iv ($iv_size, MCRYPT_RAND);

/* Инициализирует дескриптор шифрования */
if (mcrypt_generic_init ($td, $key, $iv) != -1)
{

/* Шифрует данные */
$c_t = mcrypt_generic ($td, $plain_text);
mcrypt_module_close ($td);
}
return $c_t;
}


function deshifr($c_t,$key)
{
/* Открывает модуль и создаёт IV */
$td = mcrypt_module_open ('des', '', 'ecb', '');
$key = substr ($key, 0, mcrypt_enc_get_key_size ($td));
$iv_size = mcrypt_enc_get_iv_size ($td);
$iv = mcrypt_create_iv ($iv_size, MCRYPT_RAND);
mcrypt_generic_init ($td, $key, $iv);
$p_t = mdecrypt_generic ($td, $c_t);
mcrypt_module_close ($td);
return $p_t;

}

$s= shifr('тут строка','12345');
echo($s);
echo('<pre> </pre>');

$s1= deshifr($s,'12345');
echo($s1);
echo('<pre> </pre>');

?>
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / криптография
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]