Функции для работы с паролями
@Password( строка
)
Область применения: без ограничений.
Функция обычно используется в формулах преобразования значения полей (input translation formula) для шифрования пользовательского пароля перед показом его другим пользователям. В Lotus Notes не существует встроенных возможностей для обратного декодирования строки, полученной с помощью @Password в исходную.
Пример. Возвращает (355E98E7C7B59BD810ED845AD0FD2FC4)
@Password( "password" );
J @HashPassword( строка )
Область применения: без ограничений.
Функция осуществляет хеш кодирование строки. Данный алгоритм кодирования более стойкий, чем у функции @Password. Тем более что в R 6 некоторые документы Person содержат предопределенное поле $SecurePassword, значение которого есть хеш-пароль, полученный по алгоритму @HashPassword.
Обратите внимание, что при одном и том же значении параметра возвращаемые функцией результаты могут отличаться.
Пример. Функция может вернуть «(GAEpkbr7HULl78FvDlH7)».
@HashPassword( "password" );
J @VerifyPassword( пароль1; пароль2 )
Область применения: В DOMINO R 6.0.1 НЕ ДОКУМЕНТИРОВАНА.
Сравнивает два пароля, и возвращает 1 (TRUE), если пароли эквивалентны, и 0 (FALSE) в противном случае. В качестве аргументов функции могут использоваться значения, возвращаемые @Password и @HashPassword.
Обратите ВНИМАНИЕ!!!, что параметры пароль1
и пароль2 не равнозначны с точки зрения смысла. В пароле1
должен присутствовать незашифрованный пароль, а в пароле2 – зашифрованный. Изменение порядка следования параметров вызывает возврат функцией значения 0 (FALSE). Данная информация отсутствует в Help.
Пример 1. Вернет 1.
@VerifyPassword( "password"; @Password( "password" ))
Пример 2. Вернет 1.
@VerifyPassword( "password"; @HashPassword( "password" ))
Пример 3. Вернет 0.
@VerifyPassword( "password"; @HashPassword( "Password" ))
Пример 4. Демонстрирует неравнозначность параметров функции, которая вернет значение 0.
@VerifyPassword(@HashPassword( "password" ); "password")
@PasswordQuality( имя_поля )
Область применения: без ограничений. Функция работает в Web-приложениях.
Вычисляет и возвращает в виде числа уровень сложности пароля для расшифровки. В документации достаточно бедно описана эта функция. В частности, не сказано даже как задавать имя_поля в виде литерала, или просто имени. Из опыта получается, что верен второй путь.
Параметр имя_поля задает имя поля с типом данные “пароль” (Password). Более высокое возвращаемое значение указывает на большую сложность для расшифровки. Опять же из опыта, функция работает и для полей с другими типами данных, а так же и с текстовыми литералами.
Пример. Если в поле my_pass хранится значение (355E98E7C7B59BD810ED845AD0FD2FC4), то функция вернет значение 51.
@PasswordQuality( my_pass );