Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

String in SHA256 konvertieren - VBA-Code

Forumthread: String in SHA256 konvertieren - VBA-Code

String in SHA256 konvertieren - VBA-Code
08.03.2016 13:42:27
mpb
Hallo,
in folgendem Archivthread habe ich einen von Nepumuk geposteten VBA-Code gefunden, mit dem ein String in SHA256 konvertiert werden kann.
https://www.herber.de/forum/archiv/1296to1300/1297184_VBA_Passwort_Verschluesselung.html#1297198
Leider habe ich von Klassen keine Ahnung. Deshalb meine Frage: Welchen Code muss ich in welche Module kopieren, damit das von Nepumuk erstellte Test-Makro läuft?
Besten Dank im voraus.
Gruß
Martin

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Du musst ein Klassenmodul anlegen, ...
08.03.2016 14:05:07
Luc:-?
…Martin,
das du in clsSHA256 (Nepumuk) oder CSHA256 (Original) umbenennst. In dieses muss der gesamte lange Code im 2.Kasten kopiert wdn. Der kurze Code im 1.Kasten kommt in ein normales StandardModul (falls du den Original-ModulNamen benutzt, muss Nepumuks Name durch den ersetzt wdn).
Anstelle von Nepumuks Bsp musst du eine Eingabe pgmmieren.
Gruß, Luc :-?
Besser informiert mit …

Anzeige
AW: Du musst ein Klassenmodul anlegen, ...
08.03.2016 14:36:22
mpb
Hallo Luc,
erstmal vielen Dank. Dann hatte ich den Code schon richtig verteilt, aber die Namen des Standard- und des Klassenmoduls nicht angepasst. Mein Klassenmodul heißt jetzt clsSHA256, das Standardmodul Modul1.
Nepumuks Testcode lautet ja:
Option Explicit
Public Sub Test()
Dim objCryptoClass As clsSHA256
Set objCryptoClass = New clsSHA256
Debug.Print objCryptoClass.SHA256("paul")
Set objCryptoClass = Nothing
End Sub

Er läuft jetzt einwandfrei durch, genauso wie folgender von mir erstellter Testcode:
Public Sub Test2()
Dim objCryptoClass As clsSHA256
Dim i As Integer
Set objCryptoClass = New clsSHA256
For i = 1 To 3
Cells(i, 2) = objCryptoClass.SHA256(Cells(i, 1))
Next i
Set objCryptoClass = Nothing
End Sub
Mir ist nur nicht klar, warum es funktioniert. Wieso steht in dieser Codezeile
Debug.Print objCryptoClass.SHA256("paul")
SHA256 und nicht clsSHA256 oder Modul1, d.h. der Name des Standard- oder Klassenmoduls? Mir ist die Referenzierung noch nicht klar, vielleicht kannst Du mir das noch einmal erläutern.
Vielen Dank!
Gruß
Martin

Anzeige
Debug.Print war für den Test bestimmt, ...
08.03.2016 15:25:14
Luc:-?
…Martin,
und gibt das Kryptisierungsergebnis ins Direktfenster aus (das musst du im VBE aktivieren).
Mit deiner TestRoutine durchläufst du 3 Zellen und übergibst ihren Inhalt der öffentlichen (Public) Fkt SHA256 des deklarierten Objekts, das sich auf das Klassenmodul bezieht, d.h. auf eine neue (New) Instanz desselben referenziert.
Nebenbei, der VBE-Intellisense zeigt dir bestimmt diese Fkt an, wenn du nach dem Namen des deklarierten und geSetzten Objekts einen Pkt schreibst.
Gruß, Luc :-?

Anzeige
Danke! (owT)
08.03.2016 22:43:03
mpb
;
Anzeige
Anzeige

Infobox / Tutorial

SHA256 in Excel mit VBA konvertieren


Schritt-für-Schritt-Anleitung

Um einen String in SHA256 in Excel zu konvertieren, kannst du folgenden VBA-Code verwenden. Dieser basiert auf einem von Nepumuk bereitgestellten Beispiel.

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein Klassenmodul hinzu:

    • Klicke mit der rechten Maustaste auf "VBAProject (DeineArbeitsmappe)" > Einfügen > Klassenmodul.
    • Benenne das Klassenmodul in clsSHA256 um.
  3. Füge den SHA256-Code ein: Kopiere den langen SHA256-Code in das Klassenmodul clsSHA256.

  4. Füge ein Standardmodul hinzu:

    • Klicke mit der rechten Maustaste auf "VBAProject (DeineArbeitsmappe)" > Einfügen > Modul.
    • Nenne das Modul Modul1.
  5. Füge das Test-Makro ein: Kopiere den folgenden Testcode in das Standardmodul:

    Public Sub Test()
       Dim objCryptoClass As clsSHA256
       Set objCryptoClass = New clsSHA256
       Debug.Print objCryptoClass.SHA256("paul")
       Set objCryptoClass = Nothing
    End Sub
  6. Führe das Makro aus: Starte das Makro Test, um die SHA256-Konvertierung zu überprüfen.


Häufige Fehler und Lösungen

  • Fehler: "Objekt nicht gefunden": Stelle sicher, dass du das Klassenmodul clsSHA256 korrekt benannt hast und der gesamte Code im richtigen Modul eingefügt ist.
  • Debug.Print gibt nichts aus: Überprüfe, ob das Direktfenster im VBA-Editor geöffnet ist (Strg + G), um das Ergebnis der SHA256-Funktion zu sehen.
  • Typkonflikte: Achte darauf, dass die Datentypen im Code korrekt deklariert sind.

Alternative Methoden

Falls du keine VBA-Lösungen verwenden möchtest, gibt es auch alternative Wege, um SHA256 in Excel zu implementieren:

  1. Verwendung von Online-Tools: Du kannst Strings in SHA256 über verschiedene Online-Konverter umwandeln und die Ergebnisse manuell in Excel einfügen.
  2. Add-Ins: Einige Excel-Add-Ins bieten Funktionen zur Hash-Berechnung an, die SHA256 unterstützen.

Praktische Beispiele

Hier sind einige Beispiele, wie du die SHA256-Funktion in Excel verwenden kannst:

  • Einzelne Zelle: Um den SHA256-Hash eines Werts in Zelle A1 zu berechnen, kannst du folgenden Code anpassen:

    Public Sub HashEinzelneZelle()
      Dim objCryptoClass As clsSHA256
      Set objCryptoClass = New clsSHA256
      Cells(1, 2).Value = objCryptoClass.SHA256(Cells(1, 1).Value)
      Set objCryptoClass = Nothing
    End Sub
  • Berechnung über mehrere Zellen: Der folgende Code berechnet den Hash für die ersten drei Zellen in Spalte A und gibt die Ergebnisse in Spalte B aus:

    Public Sub HashMehrereZellen()
      Dim objCryptoClass As clsSHA256
      Dim i As Integer
      Set objCryptoClass = New clsSHA256
      For i = 1 To 3
          Cells(i, 2).Value = objCryptoClass.SHA256(Cells(i, 1).Value)
      Next i
      Set objCryptoClass = Nothing
    End Sub

Tipps für Profis

  • Nutze die Intellisense-Funktion im VBA-Editor, um schnell auf Methoden und Eigenschaften deiner Objekte zuzugreifen.
  • Dokumentiere deinen Code: Füge Kommentare hinzu, damit du oder andere den Code später besser verstehen können.
  • Experimentiere mit Fehlerbehandlung: Integriere On Error Resume Next und On Error GoTo 0, um potenzielle Fehler im VBA-Code zu handhaben.

FAQ: Häufige Fragen

1. Wie kann ich den Excel SHA256-Hash direkt in einer Zelle berechnen? Leider gibt es keine eingebaute Excel-Funktion für SHA256. Du musst VBA verwenden oder auf ein Add-In zurückgreifen.

2. Welche Excel-Version benötige ich für diesen VBA-Code? Der VBA-Code funktioniert in Excel 2007 und allen neueren Versionen. Stelle sicher, dass die Makros aktiviert sind.

3. Kann ich SHA256 auch ohne VBA verwenden? Ja, du kannst Online-Tools verwenden, um SHA256 zu generieren, aber für eine direkte Berechnung in Excel benötigst du VBA oder ein Add-In.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige