С Новым годом! Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
-13 / 6 / 6
Регистрация: 04.08.2015
Сообщений: 622

Как из формы для авторизации передать на сервер хеш из логина и пароля

19.09.2017, 09:17. Показов 1628. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Имеется форма для авторизации в админку типа
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<script>
function checkauth()
{
    if(document.auth.login.value == "")
    {
            alert ("Введите Логин!");
            return false;
    }
    else if(document.auth.pass.value == "")
    {
            alert ("Введите пароль!");
            return false;
    }
        else 
        { 
            var lg = document.auth.login.value;
            var ps = document.auth.pass.value;
            sessionStorage.clear();
            sessionStorage.setItem("lg", lg);
            sessionStorage.setItem("ps", ps);
        } 
}
</script>
 
<form name="auth" method='post' action='$turl/check.html' onSubmit='return checkauth();'>
<table width='100%'><tr><td align="center">
Логин:<br />
<input name='login' value='' size='30' onfocus="this.style.background='#ccffcc'" onblur="this.style.background='#ffffff'" /><br />
Пароль:<br />
<input name='pass' value='' type='password' size='30' onfocus="this.style.background='#ccffcc'" onblur="this.style.background='#ffffff'" /><br />
</td></tr>
<tr><td align="center">
<input type="submit" value="Войти" name="submit" />
</td></tr>
</table>
</form>
Подскажите пожалуйста как из данной формы можно передать на сервер не логин и пароль, а хеш (например sha1) из суммы логина и пароля. Если кто сталкивался подскажите пожалуйста механизм, как это делается.
Пытаюсь использовать сессию, но
В сессию записывается только document.auth.login.value Если писать так sha1(document.auth.login.value) то на выходе
document.write(sessionStorage.lg); получается undefine
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.09.2017, 09:17
Ответы с готовыми решениями:

Как связать формы для ввода логина и пароля с кнопкой войти
Итак, друзья, есть у меня два text.Box (login:password), как это все связать с кнопкой войти, что бы пока там не будет введено хотя бы по...

Код для проверки правильности логина и пароля при авторизации выдает ошибку
Регистрация Логин Пароль Подтвердите пароль

Проверка логина и пароля на форме авторизации
Помогите пожалуйста с заданием, есть справочник в котором заранее занесены логины и пароли пользователей и ещё какая-то информация,...

4
 Аватар для AnonymC
1183 / 468 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
19.09.2017, 11:02
sessionStorage это не сессия. С фронтенда нету доступа к сессиям сервера.

Добавлено через 1 минуту
Сделайте конкатенация логина и пароля, то есть так - логин%%%пароль, сделайте хеш, и этот стринг отправьте на сервер
0
-13 / 6 / 6
Регистрация: 04.08.2015
Сообщений: 622
19.09.2017, 14:04  [ТС]
Понял. Спасибо. Пробую делать так:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
<form method="post" action="$turl/check.html">
<table width='100%'><tr><td align="center">
Логин:<br />
<input name='login' value='' id="login" size='30' onfocus="this.style.background='#ccffcc'" onblur="this.style.background='#ffffff'" /><br />
Пароль:<br />
<input name='pass' value='' id="password" size='30' onfocus="this.style.background='#ccffcc'" onblur="this.style.background='#ffffff'" /><br />
</td></tr>
<tr><td align="center">
<input type="submit" value="Войти" id="input" name="submit" />
</td></tr>
</table>        
<input type="text" name="strcrypt" id="strcrypt" size="33" />
</form>
 
<script type="text/javascript">
// Here add the code of the SHA1 function
/**
*  Secure Hash Algorithm (SHA1)
*  http://www.webtoolkit.info/
**/
function SHA1(msg) {
    
  function rotate_left(n,s) {
    var t4 = ( n<<s ) | (n>>>(32-s));
    return t4;
  };
  function lsb_hex(val) {
    var str="";
    var i;
    var vh;
    var vl;
    for( i=0; i<=6; i+=2 ) {
      vh = (val>>>(i*4+4))&0x0f;
      vl = (val>>>(i*4))&0x0f;
      str += vh.toString(16) + vl.toString(16);
    }
    return str;
  };
  function cvt_hex(val) {
    var str="";
    var i;
    var v;
    for( i=7; i>=0; i-- ) {
      v = (val>>>(i*4))&0x0f;
      str += v.toString(16);
    }
    return str;
  };
  function Utf8Encode(string) {
    string = string.replace(/\r\n/g,"\n");
    var utftext = "";
    for (var n = 0; n < string.length; n++) {
      var c = string.charCodeAt(n);
      if (c < 128) {
        utftext += String.fromCharCode(c);
      }
      else if((c > 127) && (c < 2048)) {
        utftext += String.fromCharCode((c >> 6) | 192);
        utftext += String.fromCharCode((c & 63) | 128);
      }
      else {
        utftext += String.fromCharCode((c >> 12) | 224);
        utftext += String.fromCharCode(((c >> 6) & 63) | 128);
        utftext += String.fromCharCode((c & 63) | 128);
      }
    }
    return utftext;
  };
  var blockstart;
  var i, j;
  var W = new Array(80);
  var H0 = 0x67452301;
  var H1 = 0xEFCDAB89;
  var H2 = 0x98BADCFE;
  var H3 = 0x10325476;
  var H4 = 0xC3D2E1F0;
  var A, B, C, D, E;
  var temp;
  msg = Utf8Encode(msg);
  var msg_len = msg.length;
  var word_array = new Array();
  for( i=0; i<msg_len-3; i+=4 ) {
    j = msg.charCodeAt(i)<<24 | msg.charCodeAt(i+1)<<16 |
    msg.charCodeAt(i+2)<<8 | msg.charCodeAt(i+3);
    word_array.push( j );
  }
  switch( msg_len % 4 ) {
    case 0:
      i = 0x080000000;
    break;
    case 1:
      i = msg.charCodeAt(msg_len-1)<<24 | 0x0800000;
    break;
    case 2:
      i = msg.charCodeAt(msg_len-2)<<24 | msg.charCodeAt(msg_len-1)<<16 | 0x08000;
    break;
    case 3:
      i = msg.charCodeAt(msg_len-3)<<24 | msg.charCodeAt(msg_len-2)<<16 | msg.charCodeAt(msg_len-1)<<8  | 0x80;
    break;
  }
  word_array.push( i );
  while( (word_array.length % 16) !== 14 ) word_array.push( 0 );
  word_array.push( msg_len>>>29 );
  word_array.push( (msg_len<<3)&0x0ffffffff );
  for ( blockstart=0; blockstart<word_array.length; blockstart+=16 ) {
    for( i=0; i<16; i++ ) W[i] = word_array[blockstart+i];
    for( i=16; i<=79; i++ ) W[i] = rotate_left(W[i-3] ^ W[i-8] ^ W[i-14] ^ W[i-16], 1);
    A = H0;
    B = H1;
    C = H2;
    D = H3;
    E = H4;
    for( i= 0; i<=19; i++ ) {
      temp = (rotate_left(A,5) + ((B&C) | (~B&D)) + E + W[i] + 0x5A827999) & 0x0ffffffff;
      E = D;
      D = C;
      C = rotate_left(B,30);
      B = A;
      A = temp;
    }
    for( i=20; i<=39; i++ ) {
      temp = (rotate_left(A,5) + (B ^ C ^ D) + E + W[i] + 0x6ED9EBA1) & 0x0ffffffff;
      E = D;
      D = C;
      C = rotate_left(B,30);
      B = A;
      A = temp;
    }
    for( i=40; i<=59; i++ ) {
      temp = (rotate_left(A,5) + ((B&C) | (B&D) | (C&D)) + E + W[i] + 0x8F1BBCDC) & 0x0ffffffff;
      E = D;
      D = C;
      C = rotate_left(B,30);
      B = A;
      A = temp;
    }
    for( i=60; i<=79; i++ ) {
      temp = (rotate_left(A,5) + (B ^ C ^ D) + E + W[i] + 0xCA62C1D6) & 0x0ffffffff;
      E = D;
      D = C;
      C = rotate_left(B,30);
      B = A;
      A = temp;
    }
    H0 = (H0 + A) & 0x0ffffffff;
    H1 = (H1 + B) & 0x0ffffffff;
    H2 = (H2 + C) & 0x0ffffffff;
    H3 = (H3 + D) & 0x0ffffffff;
    H4 = (H4 + E) & 0x0ffffffff;
  }
  var temp = cvt_hex(H0) + cvt_hex(H1) + cvt_hex(H2) + cvt_hex(H3) + cvt_hex(H4);
 
  return temp.toLowerCase();
}
// регистрация события onclick 
document.getElementById('input').onclick = function() {
// получить данные с поля password    
var txt_string = document.getElementById('password').value;
 
// поместить преобразованные данные в поле strcrypt 
document.getElementById('strcrypt').value = SHA1(txt_string);
 
};
</script>
Ради проверки сделал хеш только пароля. Все отправляется без проблем. Но проблема в том, что вместе с хеш на сервер отправляется и сам пароль из поля 'pass'. Как сделать так, чтоб на сервер отправлялся только хеш пароля - тоесть данные только из поля 'strcrypt' ?
0
 Аватар для AnonymC
1183 / 468 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
20.09.2017, 00:06
VlGuvin,
HTML5
1
<input name='pass' value='' id="password" size='30' onfocus="this.style.background='#ccffcc'" onblur="this.style.background='#ffffff'" /><br />
Здесь удалите аттрибут name
1
-13 / 6 / 6
Регистрация: 04.08.2015
Сообщений: 622
20.09.2017, 09:10  [ТС]
Спасибо. Работает.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.09.2017, 09:10
Помогаю со студенческими работами здесь

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

Ajax Форма авторизации - Запоминание логина и пароля
Здравствуйте, Имеется форма авторизации примерной конструкции: &lt;form name=&quot;wa_auth&quot; target=&quot;auth_frame&quot;...

Не корректно работает веб-приложение авторизации логина и пароля
Создал сервлет, в котором при запуске нужно ввести пароль и логин. Я его в программе...

Как можно загружать указанный файл на сервер с указанием пароля и логина FTP
Здравствуйте,как можно загружать указанный фаил на сервер с указанием пароля и логина FTP

Форма авторизации (проверка на ошибку ввода логина или пароля)
можно ли из таким способом сделать проверку на ошибку ввода логина или пароля или для этого надо загрузить таблицу в dataset?? string...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru