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

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

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

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

Как это сделать?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.04.2012, 13:06
Ответы с готовыми решениями:

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

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

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

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

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

Основная задача защитить всю базу данных и файлы от кражи.
0
 Аватар для Dimedrol
2378 / 941 / 129
Регистрация: 25.04.2009
Сообщений: 2,635
Записей в блоге: 4
16.04.2012, 14:13
Ну так вы и защитите. Ни кто без разрешения не сможет посмотреть эту фотографию. Пользователи даже не будут знать, в какой директории размещаются файлы.
1
8 / 8 / 2
Регистрация: 17.03.2012
Сообщений: 534
Записей в блоге: 2
16.04.2012, 14:32  [ТС]
Цитата Сообщение от Dimedrol Посмотреть сообщение
Ну так вы и защитите. Ни кто без разрешения не сможет посмотреть эту фотографию. Пользователи даже не будут знать, в какой директории размещаются файлы.
я хочу защитить не от пользователей, а от копирования всей базы картинок персоналом сервера.
0
 Аватар для Dimedrol
2378 / 941 / 129
Регистрация: 25.04.2009
Сообщений: 2,635
Записей в блоге: 4
16.04.2012, 14:43
Вы представляете какая будет нагрузка на сервер?
Можно перевести картинку в 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  [ТС]
Цитата Сообщение от Dimedrol Посмотреть сообщение
Вы представляете какая будет нагрузка на сервер?
Можно перевести картинку в base64 и потом воспользоваться алгоритмом DES. Но это настолько долго все будет шифроваться и дешифроваться...
Сколько, если картинки одного пользователя jpeg 50-200 kb от одной до 100.
То есть 20 Мбайт. Сколько времени займет кодирование?
0
239 / 236 / 43
Регистрация: 16.03.2011
Сообщений: 750
16.04.2012, 14:49
Нагрузка увеличится конечно.
Можно использовать простое кодирование например тот же xor: Исходный файл читаем по символу или блоками, +файл или строку для пароля.
PHP
1
2
3
$file_char='@';//символ
$pass_char='P';//пароль для символа
echo $cr_char=$file_char^$pass_char;
Можно требовать загрузки ключевого файла от пользователя или использовать простую строку.
0
 Аватар для Dimedrol
2378 / 941 / 129
Регистрация: 25.04.2009
Сообщений: 2,635
Записей в блоге: 4
16.04.2012, 14:52
Кодирование 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  [ТС]
А как такой вариант, сжать в zip с паролем, пароли файлов хранить в базе данных?
0
 Аватар для Dimedrol
2378 / 941 / 129
Регистрация: 25.04.2009
Сообщений: 2,635
Записей в блоге: 4
16.04.2012, 14:55
Ну доступ то к базе, как я понял, у людей есть? Тогда смысла нет. В моем варианте вы можете подставлять в константу свой ключ.
0
8 / 8 / 2
Регистрация: 17.03.2012
Сообщений: 534
Записей в блоге: 2
16.04.2012, 14:59  [ТС]
Цитата Сообщение от Dimedrol Посмотреть сообщение
Ну доступ то к базе, как я понял, у людей есть? Тогда смысла нет. В моем варианте вы можете подставлять в константу свой ключ.
Да, но картинки не так просто будет скопировать.

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

Добавлено через 4 минуты
Если для кодирования файлов использовать пароль юзера, то с хоста нельзя будет никак украсть базу, даже теоретически? У каждого юзера его картинки закодированны его личным паролем.
0
 Аватар для Dimedrol
2378 / 941 / 129
Регистрация: 25.04.2009
Сообщений: 2,635
Записей в блоге: 4
16.04.2012, 17:06
Ну можно заменить, к примеру, сотый символ с конца
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.04.2012, 17:06
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru