Форум программистов, компьютерный форум, киберфорум
PHP
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
8 / 8 / 2
Регистрация: 17.03.2012
Сообщений: 534
Записей в блоге: 2
1

как зашифроват в linux на php

16.04.2012, 13:06. Показов 1807. Ответов 26
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Нужно зашифровать файлы фоток пользователей а при входе пользователя на сайт расшифровать и показать.

Как это сделать?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.04.2012, 13:06
Ответы с готовыми решениями:

Как установить PHP 5.3.10 на Linux Ubuntu 16.04?
Как установить PHP 5.3.10 на Linux Ubuntu 16.04? В репозитории только новая версия PHP 7, а нужна...

Как начать рабоать с php на linux?
"Походил" по сети, никаких путных статей не нашел, как собрать сервер, чтобы там можно пробовать...

Как установить только PHP 5.2.17 под Linux через APT?
Здравствуйте , хотел бы узнать у вас как установить php 5.2.17 для работы в командной строке ,...

Как загрузить php-файл на веб-сервер Apache под Linux Mint
Привет! Изучаю книгу Линн Бейли и Майкл Моррисон "Изучаем PHP и MySQL", там на стр. 73...

26
2378 / 941 / 129
Регистрация: 25.04.2009
Сообщений: 2,635
Записей в блоге: 4
16.04.2012, 13:20 2
можно их загружать в какую-то директорию, в .htaccess прописать, что доступа к этим файлам напрямую не будет. Создать файл, к примеру, getphoto.php. Этому файлу можно передавать, к примеру, имя фотографии. Там проверять, если пользователь зарегистрирован и есть доступ к фотографии - выставляем header(Content-type: image/jpg') (зависит от mime изображения) и делаем fread. Все.
1
8 / 8 / 2
Регистрация: 17.03.2012
Сообщений: 534
Записей в блоге: 2
16.04.2012, 13:27  [ТС] 3
Цитата Сообщение от Dimedrol Посмотреть сообщение
можно их загружать в какую-то директорию, в .htaccess прописать, что доступа к этим файлам напрямую не будет. Создать файл, к примеру, getphoto.php. Этому файлу можно передавать, к примеру, имя фотографии. Там проверять, если пользователь зарегистрирован и есть доступ к фотографии - выставляем header(Content-type: image/jpg') (зависит от mime изображения) и делаем fread. Все.
А если это виртуальный хостинг. Тот кто его обслуживает будет иметь доступ к фотографиям?
0
2378 / 941 / 129
Регистрация: 25.04.2009
Сообщений: 2,635
Записей в блоге: 4
16.04.2012, 13:43 4
Да... Вы из браузера напрямую не сможете эту картинку запросить.
1
8 / 8 / 2
Регистрация: 17.03.2012
Сообщений: 534
Записей в блоге: 2
16.04.2012, 13:54  [ТС] 5
Цитата Сообщение от Dimedrol Посмотреть сообщение
Да... Вы из браузера напрямую не сможете эту картинку запросить.
Я думал что можно при запуске скрипта взять ключь из базы данных, раскодировать фото, скопировать его во временную дирикторию и показать в браузере.

Добавлено через 1 минуту
Цитата Сообщение от abc_privet Посмотреть сообщение
Я думал что можно при запуске скрипта взять ключь из базы данных, раскодировать фото, скопировать его во временную дирикторию и показать в браузере.

Основная задача защитить всю базу данных и файлы от кражи.
0
2378 / 941 / 129
Регистрация: 25.04.2009
Сообщений: 2,635
Записей в блоге: 4
16.04.2012, 14:13 6
Ну так вы и защитите. Ни кто без разрешения не сможет посмотреть эту фотографию. Пользователи даже не будут знать, в какой директории размещаются файлы.
1
8 / 8 / 2
Регистрация: 17.03.2012
Сообщений: 534
Записей в блоге: 2
16.04.2012, 14:32  [ТС] 7
Цитата Сообщение от Dimedrol Посмотреть сообщение
Ну так вы и защитите. Ни кто без разрешения не сможет посмотреть эту фотографию. Пользователи даже не будут знать, в какой директории размещаются файлы.
я хочу защитить не от пользователей, а от копирования всей базы картинок персоналом сервера.
0
2378 / 941 / 129
Регистрация: 25.04.2009
Сообщений: 2,635
Записей в блоге: 4
16.04.2012, 14:43 8
Вы представляете какая будет нагрузка на сервер?
Можно перевести картинку в base64 и потом воспользоваться алгоритмом DES. Но это настолько долго все будет шифроваться и дешифроваться...

Добавлено через 8 минут
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
<?php
 
define('KEY', 'kjH', false);
 
function encrypt($str, $key)
{
    $block = mcrypt_get_block_size('des', 'ecb');
    $pad = $block - (strlen($str) % $block);
    $str .= str_repeat(chr($pad), $pad);
 
    return mcrypt_encrypt(MCRYPT_DES, $key, $str, MCRYPT_MODE_ECB);
}
 
function decrypt($str, $key)
{   
    $str = mcrypt_decrypt(MCRYPT_DES, $key, $str, MCRYPT_MODE_ECB);
 
    $block = mcrypt_get_block_size('des', 'ecb');
    $pad = ord($str[($len = strlen($str)) - 1]);
    return substr($str, 0, strlen($str) - $pad);
}
 
$filename = dirname(__FILE__).'/test.jpg';
$imgbinary = fread(fopen($filename, "r"), filesize($filename));
$base64 = 'data:image/jpg;base64,' . base64_encode($imgbinary);
echo encrypt($base64, KEY);
1
8 / 8 / 2
Регистрация: 17.03.2012
Сообщений: 534
Записей в блоге: 2
16.04.2012, 14:45  [ТС] 9
Цитата Сообщение от Dimedrol Посмотреть сообщение
Вы представляете какая будет нагрузка на сервер?
Можно перевести картинку в base64 и потом воспользоваться алгоритмом DES. Но это настолько долго все будет шифроваться и дешифроваться...
Сколько, если картинки одного пользователя jpeg 50-200 kb от одной до 100.
То есть 20 Мбайт. Сколько времени займет кодирование?
0
238 / 235 / 43
Регистрация: 16.03.2011
Сообщений: 750
16.04.2012, 14:49 10
Нагрузка увеличится конечно.
Можно использовать простое кодирование например тот же xor: Исходный файл читаем по символу или блоками, +файл или строку для пароля.
PHP
1
2
3
$file_char='@';//символ
$pass_char='P';//пароль для символа
echo $cr_char=$file_char^$pass_char;
Можно требовать загрузки ключевого файла от пользователя или использовать простую строку.
0
2378 / 941 / 129
Регистрация: 25.04.2009
Сообщений: 2,635
Записей в блоге: 4
16.04.2012, 14:52 11
Кодирование 0.089699 сек.
Декодирование 0.069142 сек.
Size: 35.2 KB (36013 bytes)
Type: JPEG image (image/jpeg)
0
8 / 8 / 2
Регистрация: 17.03.2012
Сообщений: 534
Записей в блоге: 2
16.04.2012, 14:54  [ТС] 12
А как такой вариант, сжать в zip с паролем, пароли файлов хранить в базе данных?
0
2378 / 941 / 129
Регистрация: 25.04.2009
Сообщений: 2,635
Записей в блоге: 4
16.04.2012, 14:55 13
Ну доступ то к базе, как я понял, у людей есть? Тогда смысла нет. В моем варианте вы можете подставлять в константу свой ключ.
0
8 / 8 / 2
Регистрация: 17.03.2012
Сообщений: 534
Записей в блоге: 2
16.04.2012, 14:59  [ТС] 14
Цитата Сообщение от Dimedrol Посмотреть сообщение
Ну доступ то к базе, как я понял, у людей есть? Тогда смысла нет. В моем варианте вы можете подставлять в константу свой ключ.
Да, но картинки не так просто будет скопировать.

Добавлено через 2 минуты
Цитата Сообщение от Dimedrol Посмотреть сообщение
Кодирование 0.089699 сек.
Декодирование 0.069142 сек.
Size: 35.2 KB (36013 bytes)
Type: JPEG image (image/jpeg)
То есть, 20М 24 секунды. Немало.....
0
238 / 235 / 43
Регистрация: 16.03.2011
Сообщений: 750
16.04.2012, 15:03 15
abc_privet с xor будет быстрей работать.
0
2378 / 941 / 129
Регистрация: 25.04.2009
Сообщений: 2,635
Записей в блоге: 4
16.04.2012, 15:04 16
Попробовал побольше фотку взять. 0.4 секунды на 270.3 KB (276824 bytes)
0
8 / 8 / 2
Регистрация: 17.03.2012
Сообщений: 534
Записей в блоге: 2
16.04.2012, 16:28  [ТС] 17
Цитата Сообщение от Dimedrol Посмотреть сообщение
Попробовал побольше фотку взять. 0.4 секунды на 270.3 KB (276824 bytes)
А если такая идея: Кодировать только первые 100 байт. Интересно будет ли открываться картинка с исорченным началом?
0
2378 / 941 / 129
Регистрация: 25.04.2009
Сообщений: 2,635
Записей в блоге: 4
16.04.2012, 16:31 18
Дастаточно первый символ в файле заменить и все будет испорчено.
1
8 / 8 / 2
Регистрация: 17.03.2012
Сообщений: 534
Записей в блоге: 2
16.04.2012, 17:06  [ТС] 19
Цитата Сообщение от Dimedrol Посмотреть сообщение
Дастаточно первый символ в файле заменить и все будет испорчено.
Нужно проверить, так как иногда вначале идет коментарий и вьюверы могут быть умными.

Добавлено через 4 минуты
Если для кодирования файлов использовать пароль юзера, то с хоста нельзя будет никак украсть базу, даже теоретически? У каждого юзера его картинки закодированны его личным паролем.
0
2378 / 941 / 129
Регистрация: 25.04.2009
Сообщений: 2,635
Записей в блоге: 4
16.04.2012, 17:06 20
Ну можно заменить, к примеру, сотый символ с конца
1
16.04.2012, 17:06
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.04.2012, 17:06
Помогаю со студенческими работами здесь

Как вытянуть параметры (MAC адрес, например) сервера на Linux средствами PHP?
Ребята, подскажите, пожалуйста, как быть. У меня есть локальный сервер на линуксе. Собственно, сабж...

Linux и Php
Ребята смысл такой надо было быстро создать страницу с формами отправки(сохранение в бд через...

Как добавить приватный ключ SSH на linux машину для подключение к другому linux серверу
Как добавить приватный ключ SSH на linux машину для подключения к другому linux серверу? Короче...

Linux ubuntu php
Добрый день. Просматриваю сейчас один учебный курс про Linux ubuntu и там значит говорят мол есть...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru