Недостатком является то, что имя пользователя в основном известно, поэтому, когда кто-то знает эту «формулу», которую вы составили, он может просто вычислить sha1(user_to_hack)
, и эта часть не будет иметь никаких дополнительных преимуществ.На самом деле, это не имеет большого значения, если вы используете sha1(username)
или просто username
в этом случае.
В другом случае вы используете значение, которое не раскрывается, так что даже когда кто-тознает вашу формулу (которую все знают сейчас), ему все равно понадобится значение этой уникальной соли, прежде чем она будет им полезна, поэтому им нужно будет добраться до вашей базы данных.Я предполагаю, что вы создаете уникальную соль для каждого пользователя?
Вам, вероятно, все равно придется получать данные, так что уникальная соль, вероятно, тоже быстрее, потому что вам не нужно вычислять хэшusername.
Но, в любом случае, оба довольно безопасны, , но только если , вы правильно реализуете процедуру входа в систему.Я бы не беспокоился о том, какой из них использовать прямо сейчас.