Да, мне еще любопытно, в общих чертах, что у вас происходит в PHP? Вы говорите о двух часах на реализацию, значит там не просто хеширование, а еще какие то преобразования. Тогда, если сервисы и исходники будут утеряны, а алгоритм преобразований не удастся восстановить по памяти, то будут утеряны и сами пароли.
Что касается квалификации как веб-программиста, то она не требуется, для простого хеширования. Понадобятся лишь пара запросов в гугл и немного времени.
На самом деле формула получилась немножко другая, типа «хеш(запоминаемая фраза + ресурс + логин + случайная хранимая фраза)» и поэтому все равно требуется вести журнал и быть к нему привязанным (из-за наличия случайной хранимой фразы в формуле). Ну а в сумме привязка получается к 3 вещам: журнал, сервис, память.
Вариант без хранения какой то доп инфы не универсален, автор, вполне обосновано, приводит пример с необходимостью смены пароля на каком либо ресурсе на новый, что проблемно обеспечить без хранения какой то информации.
Ну вы писали «И вести такой список просто в блокноте», а как авторизоваться, если списка нет под рукой?
Мне не нравятся локальные базы за то же самое, в критической ситуации, когда доступа к хранилищу нет, остаешься без доступа к учёткам, хочется повышать автономность, а не привязываться к файлам и конкретным сервисам.
md5 и не надо решать в уме, если вам срочно нужна авторизация с устройства где нет приложения для вычисления, то можно вычислить онлайн. Если не доверяете сторонним сервисам, то выделить под это собственную страничку где вычисление md5 будет на клиенте. Смысл в том, чтобы если не во всех, то в подавляющем большинстве случаев иметь при себе, в голове, всё необходимое для вычисления пароля и не передавать для этого ничего на какой либо сервер.
Кстати, какой у вас запасной вариант, на случай, если нет блокнота с записями и/или ваш сервис вычисления пароля недоступен?
Обработка на сервере и блокнот — слабые места. Давайте попробуем от них избавиться. Всё для чего вам нужна вычислительная помощь — хеш. Вам достаточно помнить секретную фразу и простой алгоритм, по которому генерируется пароль для хеширования.
Скажем, ваше секретная фраза: «A3sd!aOfcJ-», ресурс: habrahabr.ru, логин: acyp. И, например, вы придумали такой единый алгоритм для пароля: 1 часть секретной фразы + логин в обратном порядке + 2 часть секретной фразы + ресурс записанный капсом через 1 символ, вместо точек пробелы. Что угодно придумать можно.
Получается: A3sd!pycaaOfcJ-hAbRaHaBr rU
Перед применением прогоняете через md5 с заменой, нескольких знаков на дополнительные, например, как у вас двух символов на +F
Таким образом вы зависите только от функции хеширования, для которой вам даже не нужен интернет, а все секреты хранятся только в вашей голове.
Правда есть такая проблема — смена домена ресурса.
Суть иллюзии в том, что цвет А и В именно на картинке кажется различным, но на самом деле то он на ней совпадает. То, какой настоящий цвет у клеток — не играет роли в этом фокусе, ведь предлагают сравнить два цвета на изображении, а не сделать предположение о том, как эти клетки выглядели будь они клетками реальной доски.
Собственно в том и цель. Вы сразу предполагаете, что тень от цилиндра настоящая и не видите оснований предположить что она нарисованная, но почему? Известно, что такую иллюзию воспроизводят именно с нарисованной тенью, а причина, по которой вы не рассматриваете этот вариант в том, что путем вызова ассоциаций с привычными объектами (доска, цилиндр, тень) вас вводят в заблуждение.
Да, конечно не просто так. И природу градиентов я объяснил чуть выше: https://habrahabr.ru/post/333552/#comment_10324152
От софтбокса световое пятно ярче по центру, а по краям его интенсивность меньше. От того и разница присутствует. Но при идеальном свете всё было бы ок.
На доске есть нарисованная тень от цилиндра. Как вы могли заметить в видео используются 2 источника света. Первый, сбоку, создает тень от цилиндра, второй — софтбокс сверху — создает световое пятно с наибольшей интенсивностью по центру, которое компенсирует настающую тень от первого источника.
Но свет ложиться не равномерно, эти неравномерности пересекаются + присутствуют переотражения поэтому при вырезании клеток их цвет идеально не совпадает.
Вот на вашей прямо картинке померил. У левой диапазон яркости приблизительно от 108 до 122, у правой от 108 до 115. Левая верхняя половина левой, в среднем, имеет яркость приблизительно 110, такую же, примерно, как нижняя половина правой.
И вот я совмещаю вырезанные вами клетки наиболее совпадающими участками:
Низ правой чуть резанул, там есть участок который светлее (!) чем пиксели в этом месте на левой клетке, которая, как вы утверждаете, целиком светлее правой.
Вообще то нет, они совпадают местами, как минимум по яркости. Я напоминаю уже в четвертый раз, что еще есть цветовая насыщенность которая лежит на клетках, так же как и тень, не равномерно.
Это как сфотографировать два заведомо одинаковых по цвету листа бумаги при таком свете, что на них есть тени и цветовые отражения, а потом утверждать что их цвет разный, поскольку в редакторе они идеально не стыкуются друг к другу )
Кстати попробуйте, листы точно так же будут на краях друг от друга отличаться при попытки стыковки.
Главное что края местами совпадают, а диапазоны яркости не просто близки, а пересекают друг друга. А еще главнее то, что если бы вы переместили клетку как я, с заменой, увидели бы что иллюзия работает и при таких отличиях в освещении.
Заставили меня в третий раз сказать про градиенты )
Другими словами, присутствуют тени, глубина которых разная на разных точках доски, поэтому яркость каждой клетки не равномерна. На перемещение клеток «вживую» это не влияет, поскольку тени не перемещаются с клетками.
В вашем эксперименте, вы сравниваете наиболее светлый край одной клетки с темным краем другой клетки. Состыкуйте их другими краями (правую клетку поставьте слева) и цвет на границе если не совпадет то будет к этому близок.
Я это сделал, поскольку подумал, что при сравнении могут отвлекать такие вещи как разности цветовой температуры источников в студии плюс, то что цветовые рефлексы ложатся на поверхность не равномерно. Но, в общем то да, это не имеет большого значения, вот та же картинка, где я перетащил клетку из центра на край, в цвете:
Если бы вы уже сами попробовали, то вопросов бы не было )
Еще раз. На видео сложные градиенты и цветовые рефлексы. Вы берете цвет одного пикселя и рисуете прямоугольник и он у вас не совпадает по краям ни с первой ни со второй клеткой. Попробуйте вырезать клетку и переместить ее, и всё станет ясно.
Мда… ) Youtube делает затемнение сверху и снизу, когда мышку наводишь, потому у вас и отличия такие.
На видео есть паразитные оттенки и градиенты сложнее. Поэтому я десатурировал изображение. Еще нагляднее будет если квадрат вырезать и перетащить, видно что он действительно совпадает по яркости с верхними.
Что касается картинки из википедии. Если вы говорите о том, что яркость клетки А и В различны, если сравнивать их яркость без тени на B, то это действительно верно и B выглядит так:
Темнее чем светлые клетки и светлее чем темные. Так что на картинке из вики не настоящая шахматная доска, а «подкрашенная», хотя вы выражали уверенность, что все светлые клетки одного цвета. Но суть иллюзии в другом, человеку кажется что клетка В существенно светлее клетки А именно при сравнении их яркости с учетом тени.
Возьмите изображение измерьте разницу яркости между тёмной клеткой в тени и темной клеткой вне тени. Компенсируйте затенение клетки B на полученное значение и убедитесь, что она имеет другой цвет нежели светлые клетки вне тени. Это доказывает что на изображении приведенном вами иллюзия.
Кстати, вероятно при помощи тени и обычной доски все же возможно получить такой эффект, чтобы именно на фото цвет клеток выглядел одинаковым, но вот иллюзию, которую демонстрируют людям вживую, когда на реальной доске квадрат того же цвета что и клетка B перемещают к клетке А и становится понятно что их цвета только кажутся разными, применяется именно рисованная «тень».
Ну а цвет клетки А, по вашему, совпадает с цветом темных клеток?
Если ответ опять «да», то возьмите обычную, не модифицированную шахматную доску и попытайтесь воссоздать тень таким образом, чтобы на фотоснимке цвет одной из светлых клеток в тени совпал с цветом одной из светлых клеток вне тени.
В том то и дело, что с обычной доской это не получится, некоторые клетки должны быть сделаны темнее или светлее, подкрашены. Если вы посмотрите на реальные модели таких досок именном это и увидите. В том и суть иллюзии.
Есть, если его фиксировать. Но пускай так, вы об этом говорите? В этом случае иллюзия все равно ведь остается, цвет клетки B воспринимается значительно светлее чем есть.
Похоже понял, мы говорили о разных вещах.
Вы хотите сказать, что чтобы цвет клетки в тени (В) совпадал с цветом клетки не в тени (А), то исходный цвет клетки В, до затенения, должен отличаться от цвета клетки А?
Что касается квалификации как веб-программиста, то она не требуется, для простого хеширования. Понадобятся лишь пара запросов в гугл и немного времени.
Вариант без хранения какой то доп инфы не универсален, автор, вполне обосновано, приводит пример с необходимостью смены пароля на каком либо ресурсе на новый, что проблемно обеспечить без хранения какой то информации.
Мне не нравятся локальные базы за то же самое, в критической ситуации, когда доступа к хранилищу нет, остаешься без доступа к учёткам, хочется повышать автономность, а не привязываться к файлам и конкретным сервисам.
Кстати, какой у вас запасной вариант, на случай, если нет блокнота с записями и/или ваш сервис вычисления пароля недоступен?
Скажем, ваше секретная фраза: «A3sd!aOfcJ-», ресурс: habrahabr.ru, логин: acyp. И, например, вы придумали такой единый алгоритм для пароля: 1 часть секретной фразы + логин в обратном порядке + 2 часть секретной фразы + ресурс записанный капсом через 1 символ, вместо точек пробелы. Что угодно придумать можно.
Получается: A3sd!pycaaOfcJ-hAbRaHaBr rU
Перед применением прогоняете через md5 с заменой, нескольких знаков на дополнительные, например, как у вас двух символов на +F
Таким образом вы зависите только от функции хеширования, для которой вам даже не нужен интернет, а все секреты хранятся только в вашей голове.
Правда есть такая проблема — смена домена ресурса.
Собственно в том и цель. Вы сразу предполагаете, что тень от цилиндра настоящая и не видите оснований предположить что она нарисованная, но почему? Известно, что такую иллюзию воспроизводят именно с нарисованной тенью, а причина, по которой вы не рассматриваете этот вариант в том, что путем вызова ассоциаций с привычными объектами (доска, цилиндр, тень) вас вводят в заблуждение.
От софтбокса световое пятно ярче по центру, а по краям его интенсивность меньше. От того и разница присутствует. Но при идеальном свете всё было бы ок.
На доске есть нарисованная тень от цилиндра. Как вы могли заметить в видео используются 2 источника света. Первый, сбоку, создает тень от цилиндра, второй — софтбокс сверху — создает световое пятно с наибольшей интенсивностью по центру, которое компенсирует настающую тень от первого источника.
Но свет ложиться не равномерно, эти неравномерности пересекаются + присутствуют переотражения поэтому при вырезании клеток их цвет идеально не совпадает.
И вот я совмещаю вырезанные вами клетки наиболее совпадающими участками:
Низ правой чуть резанул, там есть участок который светлее (!) чем пиксели в этом месте на левой клетке, которая, как вы утверждаете, целиком светлее правой.
Это как сфотографировать два заведомо одинаковых по цвету листа бумаги при таком свете, что на них есть тени и цветовые отражения, а потом утверждать что их цвет разный, поскольку в редакторе они идеально не стыкуются друг к другу )
Кстати попробуйте, листы точно так же будут на краях друг от друга отличаться при попытки стыковки.
Главное что края местами совпадают, а диапазоны яркости не просто близки, а пересекают друг друга. А еще главнее то, что если бы вы переместили клетку как я, с заменой, увидели бы что иллюзия работает и при таких отличиях в освещении.
Другими словами, присутствуют тени, глубина которых разная на разных точках доски, поэтому яркость каждой клетки не равномерна. На перемещение клеток «вживую» это не влияет, поскольку тени не перемещаются с клетками.
В вашем эксперименте, вы сравниваете наиболее светлый край одной клетки с темным краем другой клетки. Состыкуйте их другими краями (правую клетку поставьте слева) и цвет на границе если не совпадет то будет к этому близок.
Если бы вы уже сами попробовали, то вопросов бы не было )
Вот что у меня получилось:
На видео есть паразитные оттенки и градиенты сложнее. Поэтому я десатурировал изображение. Еще нагляднее будет если квадрат вырезать и перетащить, видно что он действительно совпадает по яркости с верхними.
Что касается картинки из википедии. Если вы говорите о том, что яркость клетки А и В различны, если сравнивать их яркость без тени на B, то это действительно верно и B выглядит так:
Темнее чем светлые клетки и светлее чем темные. Так что на картинке из вики не настоящая шахматная доска, а «подкрашенная», хотя вы выражали уверенность, что все светлые клетки одного цвета. Но суть иллюзии в другом, человеку кажется что клетка В существенно светлее клетки А именно при сравнении их яркости с учетом тени.
Кстати, вероятно при помощи тени и обычной доски все же возможно получить такой эффект, чтобы именно на фото цвет клеток выглядел одинаковым, но вот иллюзию, которую демонстрируют людям вживую, когда на реальной доске квадрат того же цвета что и клетка B перемещают к клетке А и становится понятно что их цвета только кажутся разными, применяется именно рисованная «тень».
Если ответ опять «да», то возьмите обычную, не модифицированную шахматную доску и попытайтесь воссоздать тень таким образом, чтобы на фотоснимке цвет одной из светлых клеток в тени совпал с цветом одной из светлых клеток вне тени.
В том то и дело, что с обычной доской это не получится, некоторые клетки должны быть сделаны темнее или светлее, подкрашены. Если вы посмотрите на реальные модели таких досок именном это и увидите. В том и суть иллюзии.
Вы хотите сказать, что чтобы цвет клетки в тени (В) совпадал с цветом клетки не в тени (А), то исходный цвет клетки В, до затенения, должен отличаться от цвета клетки А?