Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
app-notes:changing-password [2026/09/01 12:41] – [3. Additional information] grayapp-notes:changing-password [2026/09/08 12:57] (current) – [3. Additional information] gray
Line 315: Line 315:
          sleep(1);          sleep(1);
    }    }
 +   # Store password unencrypted
 +         store_password = sprintf("user.%s.store_pw",nb_config_get("custom.var0"));
 +         save = nb_config_get(store_password);
 +         if(save == '1'){
 +           store_encrypt = sprintf("user.%s.password=%s",nb_config_get("custom.var0"),pass);
 +           nb_config_set(store_encrypt);
 +           ret = nb_config_done();
 +           while (ret){
 +                printf("The config parameter set two is in the execution: %s\n",ret);
 +                ret = nb_config_done();
 +                sleep(1);
 +           }
 +         }
    nb_config_set("custom.var0=");    nb_config_set("custom.var0=");
    nb_config_set("custom.var1=");    nb_config_set("custom.var1=");
Line 320: Line 333:
    daten = '';    daten = '';
    password = '';    password = '';
 +   store_encrypt = '';
  }  }
  printf("Wait for two seconds\n");  printf("Wait for two seconds\n");
Line 537: Line 551:
  
 ++++show code|  ++++show code| 
-<code – Set_a_default_password_every_month.are>+<code – cryptpw_and_config_set.are>
 string telnet(ip, port, user, password, cmd){ string telnet(ip, port, user, password, cmd){
   if ((sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0) return NULL;   if ((sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0) return NULL;
Line 596: Line 610:
          sleep(1);          sleep(1);
    }    }
 +   # Store password unencrypted
 +         store_password = sprintf("user.%s.store_pw",nb_config_get("custom.var0"));
 +         save = nb_config_get(store_password);
 +         if(save == '1'){
 +           store_encrypt = sprintf("user.%s.password=%s",nb_config_get("custom.var0"),pass);
 +           nb_config_set(store_encrypt);
 +           ret = nb_config_done();
 +           while (ret){
 +                printf("The config parameter set two is in the execution: %s\n",ret);
 +                ret = nb_config_done();
 +                sleep(1);
 +           }
 +         }
    nb_config_set("custom.var0=");    nb_config_set("custom.var0=");
    nb_config_set("custom.var1=");    nb_config_set("custom.var1=");
Line 601: Line 628:
    daten = '';    daten = '';
    password = '';    password = '';
 +   store_encrypt = '';
  }  }
  printf("Wait for two seconds\n");  printf("Wait for two seconds\n");
Line 607: Line 635:
 </code> </code>
 ++++ ++++
 +
 +If you want to automatically reset passwords to a fixed default password, you can use these two scripts.
  
 The script resets the stored user passwords to a default password every month. The script resets the stored user passwords to a default password every month.
 +The ''“Set_a_default_password_every_month.are”'' script. 
  
-++++show code|  +++++show code| 
-<code – web_changing_password.are>+<code – Set_a_default_password_every_month.are>
 # The script resets the stored user passwords to a default password every month. # The script resets the stored user passwords to a default password every month.
  
Line 682: Line 713:
         for (i = 0; i < 20; i++){         for (i = 0; i < 20; i++){
           user_temp = nb_config_get(sprintf("user.%s.name",i));           user_temp = nb_config_get(sprintf("user.%s.name",i));
-           if(user_temp != ''){+ 
 +           if(user_temp != ''){   // The loop runs through every user  
 +                                  // who has been added to the system.  
 +                                  // If you want to reset only a specific user,  
 +                                  // you can do so by making this change    
 +                                  // if(user_temp == “<username>”) { 
            daten = sprintf("user.%s.hash=%s",i,password);            daten = sprintf("user.%s.hash=%s",i,password);
            nb_config_set(daten);            nb_config_set(daten);
Line 688: Line 725:
            while (ret){            while (ret){
                 printf("The config parameter set is in the execution: %s\n",ret);                 printf("The config parameter set is in the execution: %s\n",ret);
 +                ret = nb_config_done();
 +                sleep(1);
 +           }
 +         }
 +         # Store password unencrypted
 +         store_password = sprintf("user.%s.store_pw",i);
 +         save = nb_config_get(store_password);
 +         if(save == '1'){
 +           store_encrypt = sprintf("user.%s.password=%s",i,pass);
 +           nb_config_set(store_encrypt);
 +           ret = nb_config_done();
 +           while (ret){
 +                printf("The config parameter set two is in the execution: %s\n",ret);
                 ret = nb_config_done();                 ret = nb_config_done();
                 sleep(1);                 sleep(1);
Line 698: Line 748:
         daten = '';         daten = '';
         password = '';         password = '';
 +        store_encrypt = '';
       }       }
     }     }
Line 704: Line 755:
 </code> </code>
 ++++ ++++
 +
 +The script resets the stored user passwords to a default password every week.
 +The ''“Set_a_default_password_every_week.are”'' script. 
  
 ++++show code|  ++++show code| 
-<code – web_changing_password.are>+<code – Set_a_default_password_every_week.are> 
 + # The script resets the stored user passwords to a default password every week.
  
 +nb_config_set("custom.var4=admin12345");  # Set the default password here
 +last_run_week = "";
 +
 +string telnet(ip, port, user, password, cmd)
 +{
 +  if ((sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0) return NULL;
 +  if (connect(sock, ip, port) < 0) return NULL;
 +  try {
 +    if ((buf = recv(sock)) == NULL || strlen(buf) < 3) throw NULL;
 +    buf = explode(buf);
 +    if (buf[0] == "\xff") // is command
 +    {
 +      if (buf[1] == "\xfd" && buf[2] == "\d031") { //negotiate
 +        if (send(sock, "\d255\d251\d031") == -1) throw NULL;
 +        if (send(sock, "\d255\d250\d031\d000\d080\d000\d024\d255\d240") == -1) throw NULL;
 +      } else {
 +        for (i = 0; i < strlen(buf); i++)
 +          if (buf[i] == "\xfd") buf[i] = "\xfc";
 +          else if (buf[i] == "\xfb") buf[i] = "\xfd";
 +          if (send(sock, implode(buf)) == -1) throw NULL;
 +          }
 +    }
 +    if ((buf = recv(sock)) == NULL || strlen(buf) < 1) throw NULL; // user ?
 +    if (send(sock, strcat(user, "\r\n")) == -1) throw NULL;
 +    if ((buf = recv(sock)) == NULL || strlen(buf) < 1)throw NULL; // password ?
 +    if (send(sock, strcat(password, "\r\n")) == -1) throw NULL;
 +    while((s = select(sock, 1)) > 0 && (buf = recv(sock)) != NULL && strlen(buf) > 0)
 +      if (s == -1) throw NULL; //ignore all garbage
 +      if (send(sock, strcat(cmd, "\r\n")) == -1) throw NULL;  //send command
 +      rbuf ="";
 +    while((s = select(sock, 1)) > 0 && (buf = recv(sock)) != NULL && strlen(buf) > 0){
 +      if (s == -1) throw NULL;
 +      else rbuf = strcat(rbuf, buf); // collect return
 +    }
 +    rbuf = right(rbuf, strlen(rbuf) - strlen(cmd) - 2); //cut cmd
 +    if (pos = strrchr(rbuf, "\r"))
 +      rbuf = left(rbuf, pos);
 +    throw rbuf;
 +  } catch (ret) {
 +    close (sock);
 +    return ret;
 +  }
 +}
 +
 +while (true){
 +    now = time();
 +    dt  = localtime(now);
 +    /* Debug: Current Time */
 +    stamp = strftime("%Y-%m-%d %H:%M:%S", dt);
 +    printf("Time: %s\n", stamp);
 +    /* ISO week string (YYYY-WW) and weekday */
 +    week_str    = strftime("%G-%V", dt);  /* e.g. "2026-36" */
 +    weekday_str = strftime("%u", dt);     /* "1"=Mon ... "7"=Sun */
 +    /* Debug: Status */
 +    printf("weekday=%s week=%s last=%s\n", weekday_str, week_str, last_run_week);
 +    /* Run exactly once per week on Monday */
 +    if (weekday_str == "1" && week_str != last_run_week) {
 +        pass = nb_config_get("custom.var4");
 +      if (pass != ''){
 +        command = strcat("cryptpw -m sha256 \x22", pass, "\x22");
 +        password = strcat(telnet("192.168.1.1", 65023, "root", "<admin-password>", command));
 +        sleep(1);
 +        for (;password == "";){
 +           password = strcat(telnet("192.168.1.1", 65023, "root", "<admin-password>", command));
 +           sleep(2);
 +        }
 +        for (i = 0; i < 20; i++){
 +          user_temp = nb_config_get(sprintf("user.%s.name",i));
 +          
 +           if(user_temp != ''){   // The loop runs through every user 
 +                                  // who has been added to the system. 
 +                                  // If you want to reset only a specific user, 
 +                                  // you can do so by making this change   
 +                                  // if(user_temp == “<username>”) {
 +           
 +           
 +           
 +           daten = sprintf("user.%s.hash=%s",i,password);
 +           nb_config_set(daten);
 +           ret = nb_config_done();
 +           while (ret){
 +                printf("The config parameter set is in the execution: %s\n",ret);
 +                ret = nb_config_done();
 +                sleep(1);
 +           }
 +         }
 +         # Store password unencrypted
 +         store_password = sprintf("user.%s.store_pw",i);
 +         save = nb_config_get(store_password);
 +         if(save == '1'){
 +           store_encrypt = sprintf("user.%s.password=%s",i,pass);
 +           nb_config_set(store_encrypt);
 +           ret = nb_config_done();
 +           while (ret){
 +                printf("The config parameter set two is in the execution: %s\n",ret);
 +                ret = nb_config_done();
 +                sleep(1);
 +           }
 +         }
 +        }
 +        last_run_week = week_str;
 +        printf("Weekly run set for: %s\n", last_run_week);
 +        pass = '';
 +        daten = '';
 +        password = '';
 +        store_encrypt = '';
 +      }
 +    }
 + sleep(3600); # check once per hour
 +}
 </code> </code>
 +++++
  
 ---- ----