|
криптография
|
|||
---|---|---|---|
#18+
подскажите, пожалуйста. Вот смотрите шифровать строку уже научился, а вот как зная ключ и шифр-текст расшифровать ее. вот функция, которая зашифровывает. 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 ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2004, 21:11 |
|
криптография
|
|||
---|---|---|---|
#18+
Вот написал. Вопрос - правильно ли. Вместе оно конечно проходит, но важно, что функции будут запускаться поотдельности. У меня и вопрос - будет ли строка, зашифрованная на одном сервере (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>'); ?> ... |
|||
:
Нравится:
Не нравится:
|
|||
17.09.2004, 06:27 |
|
|
start [/forum/topic.php?fid=23&fpage=501&tid=1479363]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
38ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
others: | 309ms |
total: | 425ms |
0 / 0 |