Как уже говорили другие, не ограничивайте набор символов, разрешенных в паролях. Просто потому, что на вашей клавиатуре нет символов ä, å или ö, это не является причиной для того, чтобы помешать тем из нас, у кого они есть (или все равно знают, как их набирать), использовать эти буквы. Вы все равно будете хранить пароль как криптографический хеш (или, по крайней мере, как зашифрованную строку), не так ли? Если это так, то не имеет значения, может ли ваша база данных в любом случае успешно / безопасно хранить действительные символы в пароле, только символы, выводимые вашим криптоалгоритмом. (А если нет, то хранение паролей в открытом тексте - это намного большая проблема, чем то, какие символы могут содержать или не содержать пароли - не делайте этого!)
Ваше очевидное намерение обеспечить соблюдение ограничений набора символов путем молчаливого удаления символов, которые вам не нравятся, вместо того, чтобы сказать пользователю: «Попробуйте еще раз, и на этот раз используйте только эти символы: a, e, i, o, u». делает ваш предложенный метод действительно жестоким, поскольку это означает, что если я попытаюсь использовать, скажем, пароль fäîry
(не невероятно безопасный, но должен противостоять легким атакам по словарю), мой фактический пароль, неизвестный мне, будет fry
(если ваш пароль - трехбуквенное слово, прямо из словаря и часто используется, вы можете даже не беспокоиться). Ой!