Возможно вы искали: 'Jazz Jackrabbit 2: The...'

May 15 2025 19:12:20
  • Как сделать 8Gamers.Ru домашней страницей?
  • Игры
    • База данных по играх
    • Игровые новости
    • Игровая индустрия
    • Обзоры на игры
    • Прохождения игр
    • Гайды к играм
    • Превью о играх
    • Игровые тизеры
    • Игровые арты
    • Игровые обои
    • Игровые скриншоты
    • Игровые обложки
    • Игровые трейлеры
    • Игровое видео
    • Вышедшие игры
    • Ближайшие релизы игр
  • Кино и ТВ
    • База данных по кино
    • Статьи о кино
    • Постеры
    • Кадры из кино
    • Кино трейлеры
    • Сегодня в кино
    • Скоро в кино
  • Комиксы и манга
    • Манга по алфавиту
    • База данных по комиксах
    • Читать онлайн комиксы
    • Читать онлайн манга
    • База персонажей
  • Читы и коды
    • Чит-коды для PC игр
    • Чит-коды для консольных игр
    • Трейнеры
    • Коды Game Genie
  • Моддинг
    • Модификации
    • Карты к играм
    • Программы для моддинга
    • Статьи о моддинге
  • Геймдев
    • Всё о создании игр
    • Список движков
    • Утилиты в помощь игроделу
    • Конструкторы игр
    • Игровые движки
    • Библиотеки разработки
    • 3D-модели
    • Спрайты и тайлы
    • Музыка и звуки
    • Текстуры и фоны
  • Рецензии
    • Игры
    • Кино
    • Аниме
    • Комиксы
    • Мангу
    • Саундтреки
  • Саундтреки
    • Лирика
  • Файлы
    • Патчи к играм
    • Русификаторы к играм
    • Сохранения к играм
    • Субтитры к кино
  • Медиа
    • Видео
    • Фото
    • Аудио
    • Фан-арты
    • Косплей
    • Фото с виставок
    • Девушки из игр
    • Рисунки
    • Рисуем онлайн
    • Фотохостинг
  • Юмор
    • Анекдоты
    • Афоризмы
    • Истории
    • Стишки и эпиграммы
    • Тосты
    • Цитаты
  • Флеш
    • Азартные
    • Аркады
    • Бродилки
    • Гонки
    • Для девочек
    • Для мальчиков
    • Драки
    • Квесты
    • Леталки
    • Логические
    • Мультфильмы
    • Открытки
    • Приколы
    • Разное
    • Спорт
    • Стратегии
    • Стрелялки
Статистика

Статей: 87772
Просмотров: 96111483
Игры
Injustice:  Gods Among Us
Injustice: Gods Among Us
...
Dark Souls 2
Dark Souls 2
Dark Souls II - вторая часть самой хардкорной ролевой игры 2011-2012 года, с новым героем, сюжето...
Battlefield 4
Battlefield 4
Battlefield 4 - продолжение венценосного мультиплеер-ориентированного шутера от первого ли...
Кино
Steins;Gate
Steins;Gate
Любители японской анимации уже давно поняли ,что аниме сериалы могут дать порой гораздо больше пи...
Ку! Кин-дза-дза
Ку! Кин-дза-дза
Начинающий диджей Толик и всемирно известный виолончелист Владимир Чижов встречают на шумной моск...
Обзоры на игры
• Обзор Ibara [PCB/PS2] 18357
• Обзор The Walking ... 18801
• Обзор DMC: Devil M... 19879
• Обзор на игру Valk... 15877
• Обзор на игру Stars! 17764
• Обзор на Far Cry 3 17948
• Обзор на Resident ... 16024
• Обзор на Chivalry:... 17508
• Обзор на игру Kerb... 17981
• Обзор игры 007: Fr... 16619
Превью о играх
• Превью к игре Comp... 17960
• Превью о игре Mage... 14464
• Превью Incredible ... 14721
• Превью Firefall 13479
• Превью Dead Space 3 16334
• Превью о игре SimC... 14730
• Превью к игре Fuse 15442
• Превью Red Orche... 15542
• Превью Gothic 3 16343
• Превью Black & W... 17354
Главная » Статьи » Разное » Двусторонее шифрование паролей и переменные окружения в Apache (password php virtual crypt apache)

Двусторонее шифрование паролей и переменные окружения в Apache (password php virtual crypt apache)

Ключевые слова: password, php, virtual, crypt, apache, (найти похожие документы)

Date: Sat, 20 Jul 2002 21:36:10 +0400
From: Дмитрий Чертищев <apache-talk@ariadnamedia.com>
Newsgroups: apache-talk (http://www.lexa.ru/apache-talk)
Subject: Двусторонее шифрование паролей и переменные окружения в Apache

Дано: Apache с множеством виртуальных хостов и PHP4.
Исторически сложилось, что РНР скрипты должны иметь права 644, т.е.
они доступны для чтения всем, кто есть на этом сервере.
В РНР скриптах может находиться конфиденциальная информация, например,
пароли к БД.
Необходимо эти пароли спрятать, чтобы даже если скрипт похитили, то не
смогли бы узнать пароли.

Долго поломав голову, придумал следующее решение: пароли хранить в РНР
скриптах не в чистом виде, а зашифрованными, например с использованием
РНР функции двустороннего шифрования mcrypt(). А перед использование
пароля, пароль дешифровывать. Понятно, что для шифровки и дешифровки
нужно использовать один и тот же ключ, который и нужно спрятать от
посторонних глаз, иначе похитив ключ, злоумышленник сможет дешифровать
пароль.

Ключ будем хранить в переменной окружения SECRET_KEY в каждом
виртуальном хосте.
Для этого в httpd.conf для каждого виртуального хоста прописываем:
SetEnv SECRET_KEY some_unique_key

Т.е. для каждого хоста прописываем уникальный ключ.

Теперь необходимо с помощью этого ключа зашифровать пароль:
<?
$password = "qwerty";
$key = $HTTP_SERVER_VARS[SECRET_KEY];
$td = mcrypt_module_open ('rijndael-256', '', 'cbc', '');
$iv = mcrypt_create_iv (mcrypt_enc_get_iv_size($td), MCRYPT_DEV_RANDOM);
$ks = mcrypt_enc_get_key_size ($td);
$key = substr ($key, 0, $ks);
mcrypt_generic_init ($td, $key, $iv);
$password = mcrypt_generic ($td, $password);
mcrypt_generic_deinit ($td);
$password = bin2hex($password);
print "Зашифрованный пароль: $password
";
$hex_iv = bin2hex($iv);
print "Вектор инициализации: $hex_iv
";
mcrypt_module_close ($td);
?>

Получаем зашифрованный пароль и вектор инициализации. Теперь этот
зашифрованный пароль можно смело пихать в РНР скрипты. Расшифровываем
пароль так:

<?php
# Полученный зашифрованный пароль
$password = "8b2ef29c465b443585eb78fab8ea71f39be752aff1e1f357ee5913ce488080a5";

# Полученный вектор инициализации (этот вектор не является секретной
информацией, но нужен для расшифровки)
$hex_iv = "ea09567c55fc8f6f354ba3eceba8686d4299a7b4c0c361b7c100527ab915b4b6";

$key = $HTTP_SERVER_VARS[SECRET_CRYPT_KEY];
$password = pack("H*", $password);
$iv = pack("H*", $hex_iv);
$td = mcrypt_module_open ('rijndael-256', '', 'cbc', '');
mcrypt_generic_init ($td, $key, $iv);
$password = mdecrypt_generic ($td, $password);
mcrypt_generic_deinit ($td);
mcrypt_module_close ($td);
print $password;
?>

И получаем в $password дешифрованный пароль, который уже можно
использовать по прямому назначению, например, для подключения к БД.

Вроде вся эта технология работает и попытка расшифровать пароль на
другом виртуальном хосте не приводит к успеху, т.к. исходный ключ
неизвестен.
464 Прочтений •  [Двусторонее шифрование паролей и переменные окружения в Apache (password php virtual crypt apache)] [08.05.2012] [Комментариев: 0]
Добавил: Ukraine Vova
Ссылки
HTML: 
[BB Url]: 
Похожие статьи
Название Добавил Добавлено
• Двусторонее шифрование паролей и пе... Ukraine Vova 08.05.2012
Ни одного комментария? Будешь первым :).
Пожалуйста, авторизуйтесь для добавления комментария.

Проект входит в сеть сайтов «8Gamers Network»

Все права сохранены. 8Gamers.NET © 2011 - 2025

Статьи
Рецензия на Pressure
Рецензия на Pressure
Чтобы обратить на себя внимание, начинающие маленькие разработчики, как правило, уходят в жанры, ...
Рецензия на Lost Chronicles of Zerzura
Рецензия на Lost Chron...
Игры, сделанные без любви и старания, похожи на воздушный шар – оболочка есть, а внутри пусто. Lo...
Рецензия на The Bridge
Рецензия на The Bridge
«Верх» и «низ» в The Bridge — понятия относительные. Прогуливаясь под аркой, можно запросто перей...
Рецензия на SimCity
Рецензия на SimCity
Когда месяц назад состоялся релиз SimCity, по Сети прокатилось цунами народного гнева – глупые ош...
Рецензия на Strategy & Tactics: World War 2
Рецензия на Strategy &...
Название Strategy & Tactics: World War II вряд ли кому-то знакомо. Зато одного взгляда на ее скри...
Рецензия на игру Scribblenauts Unlimited
Рецензия на игру Scrib...
По сложившейся традиции в информационной карточке игры мы приводим в пример несколько похожих игр...
Рецензия на игру Walking Dead: Survival Instinct, The
Рецензия на игру Walki...
Зомби и продукция-по-лицензии — которые и сами по себе не лучшие представители игровой биосферы —...
Обратная связь | RSS | Донейт | Статистика | Команда | Техническая поддержка