Я собираюсь учить аудиторию алгоритмам. Я хотел бы дать им возможность создавать уникальные личные пароли для веб-сайтов.
- Они могли начать с доменного имени сайта и собственного секретного «слова».
- Алгоритм будет достаточно прост для запоминания. В противном случае они могли бы набросать мою блок-схему на обратной стороне визитной карточки или на чем-нибудь еще, что поместится в бумажнике.
На этом сайте есть похожие вопросы; данные ответы были для меня еще более непрозрачными, чем криптографический хэш.
Но некоторые указывали на неразрывную хэш-функцию Blum Human Computable Machine Unbreakable Hash Function (HCMU), реализованную здесь. Проблемы заключаются в следующем: (а) Блюм сказал, что на запоминание алгоритма уйдет час, и (б) я не умею читать Python.
Есть ли метод, который соответствует этим критериям?
ОСНОВНОЕ РЕДАКТИРОВАНИЕ: Мне приходит в голову, что я получаю неправильные ответы, потому что задаю неправильный вопрос.
Я не намерен давать классу (взрослым, а не детям) алгоритм пароля. Это показать им, как создавать свои собственные алгоритмы. Это могло бы смягчить проблему «утекшего алгоритма».
Я мог бы сказать что-то вроде:
«Вы можете использовать имя_домена.MySecretWord. Это плохой пример, потому что [по нескольким очевидным причинам].
Лучшим способом было бы DomainName.MySecretPhrase.NumberOfLettersInDomainName, но ____
В конечном счете, я бы закончил что-то вроде
«Возьмите эти элементы; решите, хотите ли вы добавить какие-либо дополнительные элементы; расположите их в соответствии с этими шагами, но сначала решите, в каком порядке вы хотите их следовать».
Это лучше?