SHA1 HASH

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    Aufgrund technischer Veränderungen ist der Mailverkehr innerhalb des Forums (Private Nachrichten) nur noch eingeschränkt möglich. Die Einschränkung ist notwendig, um zusätzliche Betriebskosten für das Forum zu vermeiden. Näheres zu den Hintergründen im Thread "Aktuelles zum Forum".Wir bitten um Verständnis.

    Hinweis kann nach Kenntnisnahme deaktiviert werden!

    • Leute, helft mir herauszufinden, wie man diese Routine Df_bufferreadarray richtig verwendet :)

      Ich habe es so versucht, es hat nicht funktioniert

      Sub Df_bufferreadarray(byval Bufferno As Byte , Byval Intpageadr As Word , Byval No_of_bytes As Word , Byref Bufferptr As Word)
      ' Function name : DF_BufferReadArray
      '
      ' Returns : None
      '
      ' Parameters : BufferNo -> Decides usage of either buffer 1 or 2
      ' IntPageAdr -> Internal page address
      ' No_of_bytes -> Number of bytes to be read
      ' *BufferPtr -> address of buffer to be used for read bytes
      '
      ' Purpose : Reads one or more bytes from one of the dataflash
      ' internal SRAM buffers, and puts read bytes into
      ' buffer pointed to by *BufferPtr

      FOR Pagge = 0 TO 8191
      Call Df_pagetobuffer(1 , Pagge)
      FOR NN = 0 TO 527
      Call Df_bufferreadarray (1 , NN , 1 , N) ' Call Df_bufferreadarray (1 , NN , NN , N)
      'N = Df_bufferreadbyte(1 , NN)
      Pwm1A = N
      Waitus 1
      NEXT NN
      NEXT Pagge

      So

      Dim Buf(528) As Byte
      FOR Pagge = 0 TO 8191
      Call Df_pagetobuffer(1 , Pagge)
      Call Df_bufferreadarray (1 , 1 , 527 , Buf(1))
      FOR NN = 1 TO 528
      Buf(NN) = N
      'N = Df_bufferreadbyte(1 , NN)
      Pwm1A = N
      Waitus 1
      NEXT NN
      NEXT Pagge

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Sonic ()

    • six1 schrieb:

      Der Begriff SHA, ausgeschrieben secure hash algorithm, bezeichnet eine Gruppe standardisierter kryptologischer Hashfunktionen.
      Hört sich erst einmal fürchterlich kompliziert an, beschreibt aber nur die Erstellung eines Prüfwertes und ist Grundlage für die digitale Signatur.
      Es wird aus einem gegebenen "String" ein Prüfwert berechnet.
      Dieser Prüfwert kann dann von jeder Stelle aus nachberechnet werden und muss immer zum gleichen Ergebnis führen, um die Integrität der Nachricht zu garantieren.
      Er soll auch nicht zurückrechnbar sein auf die originale Nachricht und soll einmalig sein. Also keine zwei unterschiedliche Nachrichten dieser Welt erhalten den gleichen Schlüssel.
      Hello SIX1.(Message translated using Google Transleter) Tried to use your code and found an error. If the length of the Hash_text variable is more than 55 characters, then the hash is not calculated correctly! Couldn't find the error myself. Therefore, I decided to inform you with a request to help ... Thanks in advance for your answer
      primer:
      Hash_text = "x3JJHMbDL1EzLkh9GBhXDw==258EAFA5-E914-47DA-95CA-C5AB0DC85B11"
      out: = "33532EDF32543BFF2AAFC6B6196A3AEF6F19E698"

      correct answer: = "1d29ab734b0c9585240069a6e4e3e91b61da1969"
    • Hallo Six1,

      hältst du es für eine Schnapsidee, den generierten Hash für ein sicheres FB-Signal (Garage/Haustür etc.) zu nutzen?

      - eine vielleicht 15-20 Zeichen lange gute Zufallsbasis, angehängt eine Art Datums-/Zeitstempel (ohne Sekunden) eines RTC-Bausteins
      - dann den String als Hash über ein einfaches 433MHz-Modul oder auch als Infrarotsignal mit einer LED "herausfunken"

      Auf der Empfängerseite könnte man die gleiche Rechnung machen - notfalls 3 mal (+/- 1 Minute) für einen Treffer und dann
      bei Erfolg den Empfangsrechner für 5 Minuten auf taub stellen.
      Für einen Lauscher wäre es bestimmt eine gewaltige Rechenaufgabe, wenn er den nächsten gültigen Code generieren wollte,
      selbst wenn er diesen Text gelesen hätte.

      Die Zufallsbasis (s.o.) könnte man ja jährlich z.B. bei einer "Wartung" (Batterie prüfen/ Uhren synchronisieren) austauschen.

      Danke
      port
    • Auf jeden Fall wird es eine spannende Geschichte für mich.

      Habe mal zum Spaß die Funktion schon mal irgendetwas "gefragt"
      (siehe Ausschnitt, 1000 Durchläufe ( Ausgangstext -> sha1 -> wieder als Eingangstext -> sha1 ->)
      - Wahnsinn -
      '__________________________________________________________

      Hash_text = "f58420e1a7dabf6b15631512d5fab370f81308f6" 'startwert

      For D = 0 To 9

      For C = 0 To 99
      Call Do_sha1_hash(hash_text)
      Hash_text = Hex(sha1_hash_1) + Hex(sha1_hash_2) + Hex(sha1_hash_3) + Hex(sha1_hash_4) + Hex(sha1_hash_5)
      Hash_text = Lcase(hash_text) ' wenn es zu einem Online Tool passen soll (zum Vergleich), welches kleine Buchstaben für A-F verwendet
      ' (60tools.com/de/tool/online-hash-generator)
      Next C ' dort nur bis 100x Hash in Folge -> damit 10x den Ausgang wieder als neuen Startwert einsetzen

      Next D

      erster_Teil = Mid(hash_text , 1 , 20 ) 'die ersten 20 Zeichen zum Anzeigen
      zweiter_Teil = Mid(hash_text , 21 , 20 ) 'die restlichen 20 Zeichen zum Anzeigen

      '__________________________________________________________

      e741df0baf73461577d0 bad81ba16fe1303aa0ee
      Ergebnis nach 1000 Sha1 Durchläufen

      Ein bisschen Gänsehaut - wenn auf dem Display das richtige Ergebnis angezeigt wird - ist bestimmt normal

      '---------------------

      MfG
      port