Не проектируйте систему аутентификации, если вы новичок в криптографии и безопасности. Это фактический ответ.
Вы не авторизуетесь с помощью sha1. Вы не храните такие пароли. Вы не аутентифицируетесь так. Вы не создаете сеансовые ключи или файлы cookie такого типа.
Вам необходимо ознакомиться с лучшими практиками.
Вот ссылка на стандарт RSA PKCS # 5 v2.1 для парольной криптографии . Вы должны начать здесь для понимания вопросов, связанных с паролями.
Вы должны прочитать PKCS # 3 или RFC2631, чтобы понять, как настроить ваши куки.
Вам следует прочитать информацию OWASP об идентификаторах сеансов, чтобы предотвратить перехват сеансов.
Существует множество учебных пособий по этому материалу, но я понимаю, что трудно сказать, что является хорошей информацией, а что плохой, когда каждый делает свои собственные заявления. Я предлагаю начать с этих курсов от Google по шифрованию, это может дать вам базовые знания, которые помогут вам понять, что хорошо, а что плохо.
Лучше всего использовать одну из давно существующих и проверенных схем аутентификации.
С учетом всего этого вы, вероятно, дважды запускаете переменную $ password через sha1.