Пропустить до основного содержимого

Бреславский Антон Вадимович

Найти
Домашняя
  
Бреславский Антон Вадимович > База знаний > Информационная безопасность  

Информационная безопасность

Шифрование DES
<?php
Header('Content-Type: text/plain;');
# Указвает на тип работы
# 1 - шифрование
# 2 - дешифрование
$Mode = 1;
# Секретный ключ
$Key = 'secretke';
echo "Key is: $Key\n";
# Открытие модуля шифрования
# MCRYPT_MODE_ECB - простой метод
# MCRYPT_MODE_CBC - сложный
$Module = MCrypt_Module_Open(MCRYPT_DES,'',MCRYPT_MODE_ECB,'');
# Создание случайного вектора инициализации в зависимости от размера блока алгоритма шифрования
$Iv = Rand(10000000,99999999);
echo "Init vector: {$Iv}\n";
# Исходный текст
switch($Mode){
  case 1:
      $ToEncode = File_Get_Contents("\Temp\ToEncode.doc");
      echo SPrintF("File size: %u\n",StrLen($ToEncode));
      # Инициализация модуля
      MCrypt_Generic_Init($Module,$Key,$Iv);
      # Шифрование данных
      $Encoded = MCrypt_Generic($Module,$ToEncode);
      File_Put_Contents('\Temp\ToDecode.doc',$Encoded);
  break;
  default:
      $ToDecode = File_Get_Contents("\Temp\ToDecode.doc");
      echo SPrintF("File size: %u\n",StrLen($ToDecode));
      MCrypt_Generic_Init($Module,$Key,$Iv);
      $Decoded = MDecrypt_Generic($Module,$ToDecode);
      File_Put_Contents('\Temp\ToEncode.doc',Trim($Decoded));
}
echo "Ok";
?>

Изменен в 26.10.2009 9:12  пользователем: Антон В. Бреславский