powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / JavaScript MD5
2 сообщений из 2, страница 1 из 1
JavaScript MD5
    #35074939
13-й Пилигрим
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день.
Нужно на посчитать MD5-хэш перед отправкой пароля на сервер. Сейчас это происходит так:
Имеется метод, который высчитывает md5 с помощью стандартной функции
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
ClassMethod GetMD5Hash(s As %String) As %String
{
    set hexMD5 = $system.Encryption.MD5Encode(s)
    set MD5Hash="" 
    f i= 1 : 1 :$L(hexMD5) set MD5Hash=MD5Hash_$J($ZHEX($A(hexMD5,i)), 2 )
    set MD5Hash=$TR(MD5Hash," ","0")
    Quit MD5Hash
}
При submit'e вызывается этот метод, а затем его результат передается в метод проверки пароля
Код: plaintext
1.
2.
3.
4.
5.
6.
ClassMethod %OnSubmit(pSubmit As %ZEN.Submit) As %Status
{
    ...
    set In("Password") = ##class(Dilers.Login).GetMD5Hash(pSubmit.%GetValue("password"))
    // Вызов метода проверки пароля с параметром In("Password")
}
В общем-то все работает. Но, если я правильно понял, метод GetMD5Hash выполняется на сервере и значение пароля передается на сервер в открытом виде. Так? Необходимо md5 считать на клиенте. Делается это, очевидно, на javascripte. Вот нашел здесь готовый *.js файл. Как его включить в ZEN-проект, чтобы можно было вызывать описанные там функции. Хотелось бы получить что-то вроде:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
...
Method getMD5hash(password) [Language = JavaScript]
{
    // Вызов функции из md5.js
    // return MD5hash
}
...
ClassMethod %OnSubmit(pSubmit As %ZEN.Submit) As %Status
{
    ...
    // Вызов getMD5hash, передача результата в In("Password")
    // Можно ли вообще вызвать JS-метод здесь?
    // Вызов метода проверки пароля с параметром In("Password")
}

Подскажите, как реализовать такую схему?
...
Рейтинг: 0 / 0
JavaScript MD5
    #35075014
logist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет.

> Имеется метод, который высчитывает md5 с помощью стандартной функции
Есть $SYSTEM.Encryption.MD5Encode(str)


> Как его включить в ZEN-проект, чтобы можно было
> вызывать описанные там функции.

/// Comma-separated list of additional JS include files for the page.
Parameter JSINCLUDES ="md5.js";

> ClassMethod %OnSubmit(pSubmit As %ZEN.Submit) As %Status
> {
> ...
> // Вызов getMD5hash , передача результата в In("Password")
> // Можно ли вообще вызвать JS-метод здесь?
Нельзя. В Submit нужно передать уже зашифрованный пароль. Например так.

<password id="pass" label="Пароль:" />
<form id="loginForm" nextPage="zui.Menu.cls"
onsubmit="return zenPage.initHidden();">
<text name="Password" id="Password" hidden="true" />
</form>

/// Init hidden fields
Method initHidden() [ Language = javascript ]
{
\tvar pass = zenPage.getComponentById(\'Password\');
\tpass.setProperty(\'value\',MD5HASH(zenPage.getValue("pass")));
\treturn true;
}

Любви.
logist (Сергей Шутов)
ООО Димас, Хабаровск



13-й Пилигрим пишет:
> Автор: "13-й Пилигрим"
> Добрый день.
> Нужно на посчитать MD5-хэш перед отправкой пароля на сервер. Сейчас это
> происходит так:
> Имеется метод, который высчитывает md5 с помощью стандартной функции
>
> ClassMethod GetMD5Hash(s As %String) As %String
> {
> set hexMD5 = $system.Encryption.MD5Encode(s)
> set MD5Hash=""
> f i=*1*:*1*:$L(hexMD5) set MD5Hash=MD5Hash_$J($ZHEX($A(hexMD5,i)),*2*)
> set MD5Hash=$TR(MD5Hash," ","0")
> Quit MD5Hash
> }
>
> При submit\'e вызывается этот метод, а затем его результат передается в
> метод проверки пароля
>
> ClassMethod %OnSubmit(pSubmit As %ZEN.Submit) As %Status
> {
> ...
> set In("Password") = ##class(Dilers.Login).GetMD5Hash(pSubmit.%GetValue("password"))
> // Вызов метода проверки пароля с параметром In("Password")
> }
>
> В общем-то все работает. Но, если я правильно понял, метод /GetMD5Hash/
> выполняется на сервере и значение пароля передается на сервер в открытом
> виде. Так? Необходимо md5 считать на клиенте. Делается это, очевидно, на
> javascripte. Вот нашел здесь <http://pajhome.org.uk/crypt/md5/md5.js>
> готовый *.js файл. Как его включить в ZEN-проект, чтобы можно было
> вызывать описанные там функции. Хотелось бы получить что-то вроде:
>
> ..
> Method getMD5hash(password) [Language = JavaScript]
> {
> // Вызов функции из md5.js
> // return MD5hash
> }
> ..
> ClassMethod %OnSubmit(pSubmit As %ZEN.Submit) As %Status
> {
> ...
> // Вызов getMD5hash , передача результата в In("Password")
> // Можно ли вообще вызвать JS-метод здесь?
> // Вызов метода проверки пароля с параметром In("Password")
> }
>
>
> Подскажите, как реализовать такую схему?
> Тема <http://www.sql.ru/forum/actualthread.aspx?tid=516697> Ответить
> <http://www.sql.ru/forum/actualpost.aspx?tid=516697> Сообщение
> <http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=516697&msg=5178539>
>
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / JavaScript MD5
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]