[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как зашифровать/расшифровать данные
Эдик
Здравствуйте!Такая проблема:есть ли такая функция, которая могла зашифровать данные,к примеру, получаемые из формы, а потом расшифровать, если я захочу просто просмотреть в нормальном виде?Лазил в гугле, та типа функция mcrypt(), но писали, что для ее работы требуется библиотека, ее скачал но вообще разобраться не могу, куда что кидать.Плюс в самой документации там вроде на примерах С++ показано.Можжет,есть другая функция?Если нет, то как с этой бороться?



Спустя 5 минут, 48 секунд (11.01.2010 - 11:56) ApuktaChehov написал(а):
А зачем Вам шифровать данные формы?

Спустя 15 минут, 52 секунды (11.01.2010 - 12:12) Эдик написал(а):
Данные из формы, те пользователь вводит пароль, а он шифруется и записывается в файл

Спустя 4 минуты, 8 секунд (11.01.2010 - 12:16) ApuktaChehov написал(а):
md5()
Только тут он не шифруется, а хэшируется.

Спустя 10 минут, 54 секунды (11.01.2010 - 12:27) Эдик написал(а):
Так а обратно расшифровать?

Спустя 2 минуты, 32 секунды (11.01.2010 - 12:29) ApuktaChehov написал(а):
А зачем обратно то?
Вы хотите авторизацию сделать, что ли?
Или я затупил?

Спустя 2 минуты, 54 секунды (11.01.2010 - 12:32) Gabriel написал(а):
Эдик
http://es2.php.net/manual/en/function.base64-decode.php
http://es2.php.net/manual/en/function.base64-encode.php
насколько знаю либо так либо самому алгоритм писать, а при md5 хеше нету обратного действия.

Спустя 32 минуты, 20 секунд (11.01.2010 - 13:04) Эдик написал(а):
Нет, я хочу администраторскую часть сделать, где админ может просматривать информацию о пользователях в незашиврованном виде.
Вообще, поначалу речь шла тока о пароле, но у меня все пользователи в текстовом файле типа
0001;11111111;Эдик;1
0002;22222222;Коля;2

Второе-это пароль.Но вот как сделать так, чтобы админ мог просматривать всю инфу в нормальном виде(чтоб он мог что-нить отредактировать), а потом обратно только пароль шифровался и обратно записывался.Поэтому я решил все подчистую шифровать.Но может, у кого варианты есть с паролем?

Спустя 6 минут, 43 секунды (11.01.2010 - 13:11) Gabriel написал(а):
Эдик
так для того чтобы сменить пароль его ненужно знать.
дык я допустим ничего зашифрованного не вижу если нужен алгоритм двухсторонний либо base64 либо руками писать. или тебе просто нужно выдрать из файла данные о пользователях?
а пароль вообще никто кроме юзера знать не должен

Спустя 4 минуты, 5 секунд (11.01.2010 - 13:15) jetistyum написал(а):
Информацию о пользователях, такую как пароль просматривать не этично... ну если на этическую сторону тебе плевать... то можно конечно... благо у тебя не будет много пользователей smile.gif

1. а зачем их шифровать, тот кто доберется до хостинга с файлом паролей так же легко доберется к скриптам и алгоритмам шифрования - дешифрования.
2. а почему бы не использовать базу данных для хранения данных авторизации?

Спустя 5 минут, 31 секунда (11.01.2010 - 13:21) Эдик написал(а):
Ну в общем мне нужно как-то админу просматривать пользователей, и если надо, что-то там у них менять.Ну я и подумал, что просто их выдрать с файла и отобразить просто прочитанное в textarea, а потом сохранить то, что админ там наизменяет в текстовый файл обратно.Ну это как я вижу пока, лучшее не придумал.
Но нельзя ж хранить пароли пользователей в обычном виде, вот я их и хочу зашифровать.Но админу надо ж просматривать логины и пароли в нормальном виде, чтобы можно было их изменить или сказать клиенту, если он их забудет.А потом нужно их опять зашифровать и вкинуть в файл.Вся фишка в том, что пользователей добавляет тока админ

Спустя 1 минута, 39 секунд (11.01.2010 - 13:22) Эдик написал(а):
Ну в принципе да,jetistyum прав.
А вот с MySQL у меня проблемы-я никогда ей не пользовался.А что, она упрощает к примеру действия,которые мне нужны?

Спустя 7 минут, 5 секунд (11.01.2010 - 13:29) Gabriel написал(а):
Эдик
админ с той-же легкостью может ввести новый пароль который попросит юзер и ненужно мучаться
то-есть если выдергиваешь данные показываешь ( не отображая пароль ) и если при сохранении меняется пароль то пишеш новый хеш пароля если нет то пишеш хеш который выдернул. (сам как-то писал админку и заказчик настаивал на том чтобы он мог просмотреть пароли но мне удалось его переубедить ибо дико не этично ).
а родимый мускул упрощает тебе жизнь при редактировании и добавлении ато недай бох чего-то со скриптом случилось и ты потерял все данные (с файлами для этого много упустить ненужно). поверь там все не так тяжело (как по мне так легче чем с файлами)

Спустя 6 минут, 49 секунд (11.01.2010 - 13:36) Эдик написал(а):
В смысле "при отображени меняется пароль"?Он же не показывается?

Спустя 29 секунд (11.01.2010 - 13:37) jetistyum написал(а):
1. Пароли хранятся обычно в виде хэша - одностороннее шифрование строки... почитай про Хэшрование
и про алгоритм md5

2. админ не меняет пароли клиентам.... меняет их автоматически скрипт... для того чтобы сменить пароль совершенно не нужно знать старый пароль, иначе зачем вообще его менять.

3. База данных значительно упрощает работу с данными.

Спустя 1 минута, 48 секунд (11.01.2010 - 13:39) Эдик написал(а):
А если пользователь забудет пароль?И у меня же данные из тестового файла(как я смогу редактировать отдельно каждого пользователя?)

Спустя 3 минуты, 37 секунд (11.01.2010 - 13:42) Gabriel написал(а):
Эдик
вот потому тебе и сказали про БД.
так если пароль не показан это не значит что он не храниться в какой либо переменной

Спустя 4 минуты, 59 секунд (11.01.2010 - 13:47) Эдик написал(а):
Ну так а как я его могу сменить, это надо для каждого пользователя форму?

Спустя 3 минуты, 25 секунд (11.01.2010 - 13:51) jetistyum написал(а):
почитай книжки по программированию. иначе у тебя будет появляться очень много таких вот глупых вопросов.
запасись терпением и проштудируй самоучитель какой-нибудь по php5 и да прибудет с тобою мудрость!

Спустя 31 минута, 49 секунд (11.01.2010 - 14:22) Gabriel написал(а):
Эдик
зачем форма на пользователя?

Спустя 56 секунд (11.01.2010 - 14:23) Эдик написал(а):
Ну как можно изменить пароль пользователя, если он не отображается?

Спустя 20 минут, 1 секунда (11.01.2010 - 14:43) ApuktaChehov написал(а):
Отображается только хэш пароля.
Если юзер забыл пароль, то нужно писать скрипт, который напомнит ему пароль. Ну неужели вы ни разу не восстанавливали пароли?
Указываете почту и вам приходит письмо с ссылкой, заходя по которой можно ввести новый пароль.

Или на кройняк, если влом писать скрипт делаем все через ->(__!__)->

Берешь любую строку, запоминаешь ее. Потом хэшируешь по своему алгоритму. После записываешь новый хэш в место старого, а эту строку, который ты запомнил, передаешь юзеру. А потом юзер меняет пароль на какой хочет.

Спустя 2 минуты, 40 секунд (11.01.2010 - 14:46) jetistyum написал(а):
по хэшу напомнить пароль нельзя. и отображать его бессмысленно. при восстановлении доступа скрипт должен сгенерировать случайную строку, сделать из нее новый хэш и занести в бд к пользователю, ну и выслать строку юзеру

Спустя 1 минута, 9 секунд (11.01.2010 - 14:47) ApuktaChehov написал(а):
Цитата (jetistyum @ 11.01.2010 - 14:46)
по хэшу напомнить пароль нельзя. и отображать его бессмысленно. при восстановлении доступа скрипт должен сгенерировать случайную строку, сделать из нее новый хэш и занести в бд к пользователю, ну и выслать строку юзеру

Я имел в виду, скрипт который будет перезаписывать хешь из нового пароля, который восстанавливает юзер. А про отображения это я о бд, там то его видно wink.gif

Спустя 7 минут, 26 секунд (11.01.2010 - 14:55) Gabriel написал(а):
ApuktaChehov
если там хеш лежит то как ты пароль увидиш?
Эдик
елкин свет! хеш не обязательно показывать как уже сказали это бессмысленно(как сказали выше)! а хеш ты можеш хранить в пхп переменной то, что ты его не выведешь на экран не говорит о том, что его нет в какой либо переменной

Спустя 4 минуты, 37 секунд (11.01.2010 - 14:59) ApuktaChehov написал(а):
Цитата (Gabriel @ 11.01.2010 - 14:55)
ApuktaChehov
если там хеш лежит то как ты пароль увидиш?

так я его и не увижу, я увижу токо хэш. А если мне нужно сменить пароль то я сделаю вот так, но через одно место
$str = "asldjhasd";
$hash = md5($str);
echo($hash);


Теперь мы знаем и новый пароль и его хэш.
Я ж писал, смена пароля через ->(__!__)->

Спустя 8 минут, 7 секунд (11.01.2010 - 15:07) Эдик написал(а):
Там такая ерунда, что в инфе о пользователях тока его код,пароль, имя и идентификатор.Поьзователь если забыл пароль, то его уже не просмотреть, но как запиать новый?Как реализовать эту проблему, если у меня такой файл
код;пароль;имя;id и это надо как-то вывести пользоввателей в соответствии их id в 4 группы. потом если захочешь просмотреть пользователей надо их вывести без пароля, потом еще как-то если надо перезаписать его, и может отредактировать инфу о ползователе и все это сохранить.Нереал

Спустя 2 минуты (11.01.2010 - 15:09) Эдик написал(а):
Тут вся загвоздка, что пароль и имя выдается самим админом пользователям, а им просто надо смириться))

Спустя 4 минуты, 22 секунды (11.01.2010 - 15:14) ApuktaChehov написал(а):
Я запутался mad.gif

Спустя 1 минута, 4 секунды (11.01.2010 - 15:15) Эдик написал(а):
Короче, чтоб было ясно-более общая проблема:
есть файл вышеупомянутого вида, админу нелбходима панель, где он мог бы добавлять пользователей(уже сделал) на 4 окна,соответственно файлу.
И еще ему надо, чтоб как то отображалась инфа о пользователях,разделенных по группам) с возможным их редактированием и переносом из одной группы в другую и удаление.И чтобы данные(можно полностью все) были зашифрованными в файле и расшифрованными у админа.Тока как это красиво сделать-проблема(((

Спустя 7 минут, 28 секунд (11.01.2010 - 15:22) ApuktaChehov написал(а):
У тебя в файле хранится: код,пароль, имя и идентификатор, тогда нужно добавть еще и группу к каждому юзеру.

Вообщем гляди. Если БД юзать никак не выйедет. Для записи в файл лучше использовать функцию serialize(). Прочитай о ней, хорошая штука.

Создаешь массив где:
имя юзера => array("id"=>"", "name" => "", и т.д.);
таким образом у каждого юзера будет как бы своя ячейка. И ты сможешь работать именно с определенным юзером через его имя. функция serialize вернет тебе строку, в которой будут содержаться все твои данные.
Ее можешь шифровать до посинения и записывать в файл.

Ну это то что пришло в голову сразу, может и бред...

Спустя 35 секунд (11.01.2010 - 15:23) Gabriel написал(а):
Эдик
вернулись к началу на какой шифровать все данные? как их захешировать/расхешировать уже было сказано. а как сказали выше если стырили зашифрованный файл и шифровался он самодельным алгоритмом то никакого труда не составить достать и алгоритм

Спустя 3 минуты, 30 секунд (11.01.2010 - 15:26) jetistyum написал(а):
ApuktaChehov
уточни, почему:
Цитата
Если БД юзать никак не выйедет

или это не констатация, а условие?

Спустя 2 минуты, 54 секунды (11.01.2010 - 15:29) Эдик написал(а):
Идентификатор это и есть номер группы

Спустя 1 минута, 23 секунды (11.01.2010 - 15:31) ApuktaChehov написал(а):
jetistyum я бы юзал бд 100%, но если у Эдика не получается, то пусть юзает что может. А почему не получается? А пусть сам сажет wink.gif

Спустя 2 минуты, 22 секунды (11.01.2010 - 15:33) Эдик написал(а):
Ну как то сначала начал с 2 книг, где все примеры тока на файлах, потом что-то когда начал свое, даже не задумывался о бд-все тож делал на файлах....

Спустя 3 минуты, 46 секунд (11.01.2010 - 15:37) Эдик написал(а):
И еще я вообще не понимаю, ну ладно на денвере через phpmyadmin бд создавать, но как в интернете, когда сайт размещаешь, где там что создавать?
И как бы,простите если тупой вопрос, у меня винда, а на сервере стоит Linux, то отличаться в базах будет что0нить?

Спустя 40 секунд (11.01.2010 - 15:37) jetistyum написал(а):
где же ты такие книги откапал... не попов там случайно нанотехнологии построения сайтов на файлах толкает??
ты уже стотыщьмиллионный юзер, который не хочет (ленится) учить базы данных, поэтому пишет все через *опу.... и с помощью страшных костылей пытаясь реализовать то, что в базе данных реализовано давно.
А поиск по базе данных как делать будешь? выгребая всех юзеров, переводя в большой массив и проверяя где кто? а кроме авторизации сайт не предусматривает никакого функционала?

Спустя 38 секунд (11.01.2010 - 15:38) jetistyum написал(а):
Цитата (Эдик @ 11.01.2010 - 15:37)
И еще я вообще не понимаю, ну ладно на денвере через phpmyadmin бд создавать, но как в интернете, когда сайт размещаешь, где там что создавать?
И как бы,простите если тупой вопрос, у меня винда, а на сервере стоит Linux, то отличаться в базах будет что0нить?


почитай про работу с базами данных.. вопросы все сами собой отпадут.

Спустя 3 минуты, 32 секунды (11.01.2010 - 15:42) Эдик написал(а):
А вот с функцией serialize() че-то вообще непонятно-что это вообще такоеи как с ней работать, что-то в интернете слишком заумно про нее написано((

Спустя 4 минуты, 20 секунд (11.01.2010 - 15:46) ApuktaChehov написал(а):
Она превращает все что угодно в строку. Таким образом большой многомерный массив, можно записать в файл одной строкой. А функция unserialize() делает обратное.

Спустя 1 минута, 57 секунд (11.01.2010 - 15:48) Эдик написал(а):
Так типа элементы масива будут записываться в файл построчно с абзацами между строками?

Спустя 27 минут, 6 секунд (11.01.2010 - 16:15) ApuktaChehov написал(а):
нет. Тебе вообще не должно быть важно как они записываются. Знай одно. Если ты запишешь результат работы serialize() в файл, а потом то что в файле записано обработешь unserialize(), то ты получишь, то что имел до того как юзал serialize(). Функция упаковывает, все что угодно по своему алгоритму.

Спустя 22 секунды (11.01.2010 - 16:15) Эдик написал(а):
Вообще ничего не понимаю(((А какие параметры принимает, как инициализируется?А как она поможет в моем случае?

Спустя 1 минута, 31 секунда (11.01.2010 - 16:17) ApuktaChehov написал(а):
serialize($str);
$str это - массив, значение переменной, строка и т.д.

Попробуй поработай с ней.

Спустя 3 минуты (11.01.2010 - 16:20) Эдик написал(а):
А можно для меня пояснить "Создаешь массив где:
имя юзера => array("id"=>"", "name" => "", и т.д.);
таким образом у каждого юзера будет как бы своя ячейка. И ты сможешь работать именно с определенным юзером через его имя. функция serialize вернет тебе строку, в которой будут содержаться все твои данные.
Ее можешь шифровать до посинения и записывать в файл."
А то что-то я вообще не уловил мысль, какой массив создавать и как, и как эта функция вернет мне сторку, в которой будут содержаться все мои данные?

Спустя 6 минут, 30 секунд (11.01.2010 - 16:26) ApuktaChehov написал(а):
Да, эта функция вернет строку, где будут храниться все твои данные. Как? Попробуй с ней поработать узнаешь.
Ладно, разжую:

$users = array(
"vasyP" => array(
"pass" => "sd;fojhgl;jubg",
"id" => "10",
"username" =>"Вася пупкин"
),
"sashaG" => array(
"pass" => "45tertw",
"id" => "11",
"username" =>"Саша Гной"
)
);


Теперь у каждого юзера свой массив с данными. А все юзеры храняться в массиве $users и обртиться к ним можно вот так: $users['vasyP']['pass'] или $users['sashaG']['pass']

P.S. Мил человек, начни работать с БД очень тебя прошу, не пожалеешь. К тому же на примерах можно сразу начать что то делать, не учить сначала.

Спустя 10 минут, 5 секунд (11.01.2010 - 16:36) Эдик написал(а):
Так а зачем мне вообще эта функция?И массив должен заполняться не вручную, а автоматически, при добавлении пользователя

Спустя 2 минуты, 18 секунд (11.01.2010 - 16:39) sergeiss написал(а):
Я вот думаю... А может, Эдику дать бан на сутки, чтобы он за это время почитал про уже указанные функции???
Кстати говоря, у меня в подписи есть ссылка на самый правильный и полных хэлп по ПХП.

Спустя 1 минута, 31 секунда (11.01.2010 - 16:40) ApuktaChehov написал(а):
Цитата (Эдик @ 11.01.2010 - 16:36)
Так а зачем мне вообще эта функция?

Что бы ты весь этот большой массив загнал в одну строку и записал его в файл. А потом вытащил из файла и обратно превратил в массив.

А зчем все это? Что бы не писать собственные алгоритмы записи и извлечения данных из файла.

Бан - это мера радиКальная, но действенная. ph34r.gif wink.gif

Спустя 1 минута, 3 секунды (11.01.2010 - 16:41) Эдик написал(а):
Так мне и шифрование данных тогда не надо)За что бан?
Так там на англ. все, я его не знаю((

Спустя 3 минуты, 34 секунды (11.01.2010 - 16:45) sergeiss написал(а):
Цитата (Эдик @ 11.01.2010 - 17:41)
За что бан?

Да так.... Пока не за что, вроде бы wink.gif

А вообще - было бы полезно (типа "в угол поставить"), чтобы не только спрашивал, но и сам научился с документацией работать.

Спустя 1 минута, 2 секунды (11.01.2010 - 16:46) ApuktaChehov написал(а):
Так. Кажется у меня едит крыша.

Это последний мой пост, ибо времени нет, убегаю.

занчит так вот во что превращается массив:
a:3:{i:1;s:9:"обложка№1";i:2;s:10:"обложка №2";i:3;s:23:"блок на два вида брощюр";}
Как видишь, все видно и отнасительно понятно. Если нужно шифровать, шифруй эту сроку. Токо не забудьее потом расшифровать перед тем как в массив вернуть wink.gif

Спустя 2 минуты, 20 секунд (11.01.2010 - 16:48) Эдик написал(а):
Ладно, тогда большое спасибо за потраченное время,оно должно не пойти вроде впустую.Буду думать

Спустя 1 минута, 36 секунд (11.01.2010 - 16:50) ApuktaChehov написал(а):
Цитата (Эдик @ 11.01.2010 - 16:48)
Буду думать

Эта хорошая идея. Счастливо!

Спустя 14 часов, 33 минуты, 31 секунда (12.01.2010 - 07:23) php-master написал(а):
      И шифрование и хеширование реально лишняя трата излишней прыти неопытного админа. Это как алгоритм для сокрытия возможности сохранения картинок для сата писать. Изощьряться в коде можно до бесконечности, а простой дизайнер без раздумья, совершенно не парясь, делает скриншот экрана и через пару минут изображение уже на его сайте.
      Нужно понять одно, если кто то захочет задаться целью, он своё сделает, а не сделает, так обратится за помощью к тем, кто ему это обязательно сделает. Так, что не нужно тратить время на подобную фигню. Лучше выстраивать приоритеты на действительно стоящие задачи.

Спустя 5 часов, 53 минуты, 46 секунд (12.01.2010 - 13:17) Gabriel написал(а):
php-master
правильно безопасность нужна в разумных количествах... а если тебе захотят что-то по****ть то добьются этого рано или поздно

Спустя 4 часа, 9 минут, 24 секунды (12.01.2010 - 17:26) VolCh написал(а):
хеширование паролей (хотя бы по sha1 и с солью), имхо, "разумное количество безопасности" Если вдруг "уведут" БД, то хотя бы пользователей всех скопом не подставишь, в случае если этот пароль они еще где-то используют

Спустя 1 час, 8 минут, 49 секунд (12.01.2010 - 18:35) Gabriel написал(а):
VolCh
ну никто не сказал, что пас в хеш загонять ненужно smile.gif я вообше хеширую sha1 md5 соль, а народ в основном так и использует один пас на нескольких ресурсах

Спустя 7 дней, 6 часов, 34 минуты, 59 секунд (20.01.2010 - 01:10) Андрей написал(а):
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.