INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Auth Failed wenn ArduinoOTA.setPasswordHash benutzt wird
26.11.2019, 09:06 (Dieser Beitrag wurde zuletzt bearbeitet: 26.11.2019 17:49 von Hoffmakl.)
Beitrag #1
Auth Failed wenn ArduinoOTA.setPasswordHash benutzt wird
Hallo zusammen,
wenn ich das setPasswordHash benutze, bekomme ich folgende Fehlermeldung:
über den seriellen Monitor:
[I][ArduinoOTA.cpp:130] begin(): OTA server at: esp32-240affffffff.local:3232
Ready
IP address: 192.168.xxx.xxx
[W][ArduinoOTA.cpp:229] _onRx(): Authentication Failed
Error[0]: Auth Failed

IDE:
C:\Users\KHoff\Documents\ArduinoData\packages\esp32\hardware\esp32\1.0.4/tools/espota.exe -i 192.168.xxx.xxx -p 3232 --auth= -f C:\Users\KHoff\AppData\Local\Temp\arduino_build_13317/BasicOTA_V1.ino.bin
Sending invitation to 192.168.xxx.xxx
Beim Hochladen des Sketches ist ein Fehler aufgetreten
Authenticating...FAIL
07:47:14 [ERROR]: Authentication Failed

Ein Eingabe-Fenster (von der IDE - Umgebung) zur Eingabe des Passworts erscheint nicht.

Das Passwort "esp32" habe ich über einen MD5 Hash Generator erstellt:

Your String: esp32
Your Hash: eb3b564b7150aa15ba8351c7365a90c9

Der Sketch ist aus dem bereitgestellten Beispiel, inklusive BLINK.
(// ArduinoOTA.setPasswordHash("eb3b564b7150aa15ba8351c7365a90c9"); - funktioniert)

Code:
#include <WiFi.h>
#include <ESPmDNS.h>
#include <WiFiUdp.h>
#include <ArduinoOTA.h>

const char* ssid = "yyyyyyy";
const char* password = "xxxxxxxx";
//variabls for blinking an LED with Millis
const int led = 2; // ESP32 Pin to which onboard LED is connected
unsigned long previousMillis = 0;  // will store last time LED was updated
const long interval = 2000;  // interval at which to blink (milliseconds)
int ledState = LOW;  // ledState used to set the LED
void setup() {

pinMode(led, OUTPUT);  
  Serial.begin(115200);
  Serial.println("Booting");
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);
  while (WiFi.waitForConnectResult() != WL_CONNECTED) {
    Serial.println("Connection Failed! Rebooting...");
    delay(5000);
    ESP.restart();
  }

  // Port defaults to 3232
  ArduinoOTA.setPort(3232);

  // Hostname defaults to esp3232-[MAC]
  // ArduinoOTA.setHostname("esp32-240ac480149c");

  // No authentication by default
  // ArduinoOTA.setPassword("geheimesp32");

  // Password can be set with it's md5 value as well
  // MD5(admin) = 44cbcc6270f104d2189a149253c541b7
  ArduinoOTA.setPasswordHash("eb3b564b7150aa15ba8351c7365a90c9");

  ArduinoOTA
    .onStart([]() {
      String type;
      if (ArduinoOTA.getCommand() == U_FLASH)
        type = "sketch";
      else // U_SPIFFS
        type = "filesystem";

      // NOTE: if updating SPIFFS this would be the place to unmount SPIFFS using SPIFFS.end()
      Serial.println("Start updating " + type);
    })
    .onEnd([]() {
      Serial.println("\nEnd");
    })
    .onProgress([](unsigned int progress, unsigned int total) {
      Serial.printf("Progress: %u%%\r", (progress / (total / 100)));
    })
    .onError([](ota_error_t error) {
      Serial.printf("Error[%u]: ", error);
      if (error == OTA_AUTH_ERROR) Serial.println("Auth Failed");
      else if (error == OTA_BEGIN_ERROR) Serial.println("Begin Failed");
      else if (error == OTA_CONNECT_ERROR) Serial.println("Connect Failed");
      else if (error == OTA_RECEIVE_ERROR) Serial.println("Receive Failed");
      else if (error == OTA_END_ERROR) Serial.println("End Failed");
    });

  ArduinoOTA.begin();

  Serial.println("Ready");
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());
}

void loop() {
  ArduinoOTA.handle();  
  //loop to blink without delay
  unsigned long currentMillis = millis();
  if (currentMillis - previousMillis >= interval) {
  // save the last time you blinked the LED
  previousMillis = currentMillis;
  // if the LED is off turn it on and vice-versa:
  ledState = not(ledState);
  // set the LED with the ledState of the variable:
  digitalWrite(led,  ledState);
  }
}

Testumgebung: ESP32-ST, ESP_IDF, HIMALAYA, Arduino IDE 1.8.9 Windows, ESP32 Dev Module, 4 MB, esptool.py v2.6, Chip is ESP32D0WDQ6 (revision 0)

VG aus Altlandsberg
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
26.11.2019, 12:46
Beitrag #2
RE: Auth Failed wenn ArduinoOTA.setPasswordHash benutzt wird
Die allgemeinen Hash-Programme werden nicht empfohlen. Hier ist ein geeignetes Programm eingebettet.

Ich habe noch nicht mit Passwort /Hash gearbeitet.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
26.11.2019, 15:46
Beitrag #3
RE: Auth Failed wenn ArduinoOTA.setPasswordHash benutzt wird
Danke, für deine Antwort.
Der MD5 Hash Generator erzeugt doch nur den Hash.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
26.11.2019, 16:04
Beitrag #4
RE: Auth Failed wenn ArduinoOTA.setPasswordHash benutzt wird
(26.11.2019 15:46)Hoffmakl schrieb:  Danke, für deine Antwort.
Der MD5 Hash Generator erzeugt doch nur den Hash.
Ja, aber auf der verlinkten Seite steht, dass es da auch welche gibt, deren Hash wohl nicht funktioniert.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
26.11.2019, 17:39 (Dieser Beitrag wurde zuletzt bearbeitet: 26.11.2019 17:40 von Hoffmakl.)
Beitrag #5
RE: Auth Failed wenn ArduinoOTA.setPasswordHash benutzt wird
Ich habe mehrere Generatoren ausprobiert. Es ist in der Tat so, dass es unterschiedliche Ergebnisse gibt.
Als md5()-Hashwert benutze ich "esp32".

Das Ergebnis von
https://www.md5generator.de/
https://www.php-einfach.de/diverses/md5-.../?submit=1

ist eb3b564b7150aa15ba8351c7365a90c9

Das Ergebnis von
https://www.md5hashgenerator.com/
https://bueltge.de/md5/
https://de.toolpage.org/tool/md5
https://www.andre-jochim.de/md5-hash-generator.htm

ist f1d2ca350beed4539e4c3b7e752183a0

Unabhängig welchen hash ich eintrage, der Fehler ist immer der gleiche.

Was mir fehlt ist eigentlich, dass folgendes Fenster aufgeht

[Bild: arduinoota-esp32-3-password-authentication.jpg]

Nach der Eingabe kann doch erst festgestellt werden, dass die Authentifizierung falsch ist, oder?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
26.11.2019, 17:54
Beitrag #6
RE: Auth Failed wenn ArduinoOTA.setPasswordHash benutzt wird
(26.11.2019 17:39)Hoffmakl schrieb:  Nach der Eingabe kann doch erst festgestellt werden, dass die Authentifizierung falsch ist, oder?
Eigentlich schon. Es könnte aber auch ganz einfach ein weiterer ESP32-Bug sein.

Evtl. weiß jemand anderes noch etwas. Für mich ist das ESP32-Feld noch viel zu instabil.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
26.11.2019, 18:22 (Dieser Beitrag wurde zuletzt bearbeitet: 26.11.2019 18:22 von amithlon.)
Beitrag #7
RE: Auth Failed wenn ArduinoOTA.setPasswordHash benutzt wird
Hallo,

habe das gerade mal durchgespielt: IDE 1.8.10, ESP32 1.0.4
BasicOTA aus den Beispielen erstmal ohne Passwort: ok
Den Beispielhash für admin eingetragen: Abfrage beim OTA-Flash kommt und admin wird akzeptiert.
Hash für admin mit https://www.md5generator.de/ berechnet: stimmt überein.
Hash für esp32 berechnet und eingetragen: keine Abfrage bei OTA-Flash, die IDE scheint das letzte Passwort zu speichern, zumindest bis man sie beendet.
ESP32 mit dem neuen Hash neu gestartet: Abfrage kommt, esp32 wird akzeptiert.
Geht also zumindest soweit wie beschrieben.
esp32 Hash stimmt auch mit dem aus Deinem ersten Post überein.

Gruß aus Berlin
Michael
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
26.11.2019, 18:24
Beitrag #8
RE: Auth Failed wenn ArduinoOTA.setPasswordHash benutzt wird
Für OTA ist Python 2.7.x erforderlich. Installiert habe ich 3.8.0 (32-bit) auf dem PC.
In der IDE wird mir esptool.py v2.6 angezeigt. Muss Python in die IDE Umgebung eingebunden werden?

Ich verwende einen ESP Chip mit (revision 0). Werde mal mit einem neueren Testen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Welche IDE benutzt ihr? Vollkorn 37 22.818 22.06.2020 21:37
Letzter Beitrag: Mathias
  Lauftext mit WS2812, der über Seriellen Monitor eingegeben wird Bastian 3 397 12.05.2020 16:47
Letzter Beitrag: Tommy56
  LED an wenn PC an René1987 2 413 18.02.2020 21:38
Letzter Beitrag: Tommy56
  int variable wird nicht in Schleife übertragen ha0248 8 870 11.02.2020 15:25
Letzter Beitrag: ha0248
  Nextion Fehler bei Button Abfrage wenn ich zusätzlich Text sende MarkZero0815 24 1.998 28.01.2020 08:23
Letzter Beitrag: hotsystems
  Was machen wenn man einen Kontakt 2x benötigt?? DO3GE 16 1.694 28.12.2019 20:20
Letzter Beitrag: DO3GE
  AT90CAN Interrupt wird nicht ausgelöst slsb02 5 768 19.11.2019 15:04
Letzter Beitrag: slsb02
  Wenn pin high dann anderen pin kurz aktivieren Prospekteur 16 2.140 15.10.2019 14:18
Letzter Beitrag: Tommy56
  If...els if wird nich korrekt ausgeführt suterb 18 2.264 28.05.2019 13:51
Letzter Beitrag: Tommy56
  Bedingung wird nicht wiederholt ausgeführt Lite 16 2.522 29.03.2019 05:11
Letzter Beitrag: Lite

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste