· 9 years ago · Jan 29, 2017, 09:06 PM
1var g_val = Math.random()*(g_end - g_beg + 1);
2var gen = Math.floor(g_val) + g_beg;
3
4// simple mod
5var sm_beg = 2;
6var sm_end = 100;
7
8var sm_val = Math.random()*(sm_end - sm_beg + 1);
9var simple_mod = Math.floor(sm_val) + sm_beg;
10
11// private_number
12var p_beg = 1;
13var p_end = 6;
14
15var p_val = Math.random() / 32767 *(p_end - p_beg + 1);
16var private_number = Math.floor(p_val) + p_beg;
17
18var res_degree = Math.pow(gen, private_number);
19var res_module = res_degree % simple_mod;
20
21// send gen, mod to server
22var msg = "DH_proto" + gen + "&" + simple_mod + "&" + res_module;
23 $.ajax({
24 async: false,
25 type: 'POST',
26 url: 'https://127.0.0.1/',
27 data: msg,
28 success: function(data) {
29
30 // generate secret key
31 var degree = Math.pow(data, private_number);
32 var secret_key = String(degree % simple_mod);
33 //alert(secret_key);
34
35 var amoundRounds = 16;
36
37 var leftBlock = [];
38 var rightBlock = [];
39 var arrayRounderKeys = [];
40 var encryptLogin;
41 var encryptPass;
42
43 // get auth data
44 var get_login = String($("input[name='AuthLogin']").val());
45 var get_pass = String($("input[name='AuthPass']").val());
46
47 // hashing auth data (SHA512)
48 secret_key = hex_sha512(secret_key);
49 get_login = hex_sha512(get_login);
50 get_pass = hex_sha512(get_pass);
51
52 if(get_login.length != 128 || get_pass.length != 128 || secret_key.length != 128)
53 {
54 alert("Error SHA512, length != 128 symbols or secret key != 128");
55 }
56
57 // in Binary auth
58 secret_key = inBinary(secret_key);
59 get_login = inBinary(get_login);
60 get_pass = inBinary(get_pass);
61
62 //
63 subblock(get_login.split(''), leftBlock, rightBlock);
64
65 //
66 arrayRounderKeys = arrayKeys(secret_key.split(''), amoundRounds);
67
68 //
69 encryptLogin = encryptFeistelNetwork(leftBlock, rightBlock, arrayRounderKeys, amoundRounds);
70
71 //
72 leftBlock = [];
73 rightBlock = [];
74
75 //
76 subblock(get_pass.split(''), leftBlock, rightBlock);
77
78 //
79 encryptPass = encryptFeistelNetwork(leftBlock, rightBlock, arrayRounderKeys, amoundRounds);
80
81 // start preloader
82 go_preloader();
83
84 // data overwrite
85 $('#user_name').val(encryptLogin);
86 $('#user_pass').val(encryptPass);
87
88 },
89 error: function(xhr, str){
90 alert('Возникла ошибка: ' + xhr.responseCode);
91 }
92 });