I18n и пароли, отличные от US-ASCII, Latin1 или Win1252

Как вы обрабатываете пароли для служб, когда пользователь вводит что-то, что лучше всего представлено в Unicode или какой-либо другой нелатинской кодировке символов?

В частности, можно ли использовать кириллический пароль в качестве пароля для Oracle? Что вы делаете, чтобы проверить пароль пользователя на соответствие механизму проверки подлинности Windows, если пароль указан как UTF-8?

У меня есть несколько идей о том, как с этим справиться в нашем коде, но я ищу совета от других, чтобы убедиться, что наше направление правильное.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
3
0
455
2

Ответы 2

Сама кодировка не должна создавать проблемы для шифрования, большинство алгоритмов работают с байтами, а не с символами. Единственная проблема, которая может быть проблемой: шифрование одного и того же пароля с разными кодировками может дать разные значения, если в пароле используются экзотические (не ASCII) символы. Однако преобразование пароля в фиксированную кодировку (например, UTF8) должно решить эту проблему.

У вас могут возникнуть проблемы с ограничениями длины механизмов аутентификации.

например Если система указывает максимальную длину 12 байтов, это может быть легко превышено пятью китайскими символами в utf-8, это не проблема как таковая, потому что четыре китайских символа должны иметь достаточную энтропию, но вы должны быть осторожны с ошибкой сообщения.

Другие проблемы могут возникнуть, если механизм аутентификации применяет такие правила, как «хотя бы по одному символу верхнего и нижнего регистра, пунктуации и числовых символов» - в некоторых языках отсутствуют символы верхнего / нижнего регистра, а в кодировке Unicode определены десятки символов, которые являются родными. говорящий будет думать о них как о числах, но не может быть распознан как таковые из-за плохо реализованного правила.

Другие вопросы по теме