ich möchte gerne mein Passwort verschlüsseln, damit mein Passwort nicht klar im VBA-Editor sichtbar ist. Dafür habe ich auf dieser Seite https://www.herber.de/forum/archiv/1080t...htbar.html folgenden Code gefunden:
Function strCrypt(strText) As String Dim lngS As Long, strTemp As String
For lngS = 1 To Len(strText) strTemp = strTemp & Chr(Asc(Mid(strText, lngS, 1)) + lngS) Next strCrypt = strTemp End Function
Function strDeCrypt(strText) As String Dim lngS As Long, strTemp As String
For lngS = 1 To Len(strText) strTemp = strTemp & Chr(Asc(Mid(strText, lngS, 1)) - lngS) Next strDeCrypt = strTemp End Function
Ich verstehe allerdings nicht, wie ich diesen Code einbaue und anwende, da meine VBA-Kenntnisse gegen 0 streben. Kann mir jemand beim Implementieren helfen? Ich danke Euch sehr im Voraus.
25.03.2020, 11:26 (Dieser Beitrag wurde zuletzt bearbeitet: 25.03.2020, 11:34 von Fennek.)
Hallo,
trage es mit Humor:
Rot13 ist eher ein Spiel für den Teenie-Geburtstag. Wenn Du verschlüsseln möchtest, versuche es mit XOR.
Ungeprüft:
Code:
sub X_or() dim By() as byte
pass = "Geheim" By = pass for b = 0 to ubound(By) step 2 Cipher = Cipher & chr(By(b) xor 200) next b msgbox Cipher end sub
Der Code ver- und entschlüsselt das supergeheime Password.
mfg Ok, etwas ernsthafter:
beschreibe genauer, wie das password schützen, wieviele user Zugang erhalten sollen und ob es ein gemeinsamen fileserver gibt, bzw an jedem relevanten Pc etwas gespeichert werden kann.
Vorallem: Warum ist das Excel WorkBook.Open Password nicht ausreichend (ist nach kryptographischen Regeln relativ gut)
hier eine etwas verrückte Idee von mir, welche ich im Jahr 2007 hatte. Ich hänge sie in den Anhang.
Gruß Marcus
Wissen ist Macht - es ist aber nicht schlimm nicht alles zu wissen. Man muss nicht alles wissen - man muss nur wissen wo es steht, oder wo man Hilfe bekommt.
Folgende(r) 1 Nutzer sagt Danke an marose67 für diesen Beitrag:1 Nutzer sagt Danke an marose67 für diesen Beitrag 28 • m0nkey_d
Hi, entschuldigt bitte die späte Antwort. Leider war ich in diesen Zeiten arbeitstechnisch stark verhindert.
Ich habe inzwischen ein Passwort für den VBA-Editor eingestellt; vielen Dank für den Hinweis RPP63. Könntest du mir noch erklären, was du hiermit meinst: "Oder Du versteckst es recht effizient in den .CustumProperties eines Tabellenblatts."? Auch aus dem Link bin ich leider nicht schlauer geworden.
Ich danke allen anderen ebenfalls für die ihre Beiträge, aber leider werde ich aus diesen nicht schlauer, da es mir - wie gesagt - an VBA-Kenntnissen mangelt und ich die Fachbegriffe in Euren Texten nicht verstehe. Könnt ihr mir das vielleicht nochmal versuchen naherzubringen? Vielen Dank im Voraus.
vielen Dank für deinen Code.Er hat mir sehr geholfen.
Kannst du mir sagen, wie ich deinen Code so umändern kann, dass alles in Zelle B1 stattfindet? Das Eingabewort, das verschlüsselte Wort und das entschlüsselte Wort soll in derselben Zelle angezeigt werden.
27.04.2020, 01:40 (Dieser Beitrag wurde zuletzt bearbeitet: 27.04.2020, 06:01 von WillWissen.
Bearbeitungsgrund: Codetags
)
Vielleicht nicht die eleganteste Lösung, aber ich habe es durch eine kleine Ergänzung (nämlich mit der Zelle C1 als Puffer) geschafft:
Code:
Sub Passwort_verschlüsseln() Dim bprop(25, 2) As Variant Dim bprop2(25) As Variant Dim i As Integer Dim AnzahlZ As Integer Dim Zeichen As Variant Dim zufall As Variant Randomize Timer zufall = Int(9 * Rnd) + 1 AnzahlZ = Len(Range("B1")) Range("C1").ClearContents
For i = AnzahlZ To 1 Step -1 bprop(i, 1) = Right(Mid(Range("B1"), i, 1), 1) For Zeichen = 225 To 33 Step -1 If bprop(i, 1) = Chr(Zeichen) Then bprop(i, 1) = Chr(Zeichen + zufall) Next bprop2(i) = bprop(i, 1) Range("C1") = Range("C1") & bprop2(i) Next
Range("C1") = Range("C1") & zufall Range("B1") = Range("C1") Range("C1").ClearContents End Sub
Sub Passwort_entschlüsseln() Dim bprop(25, 2) As Variant Dim bprop2(25) As Variant Dim i As Integer Dim AnzahlZ As Integer Dim Zeichen As Variant Dim zufall As Variant zufall = Right(Range("B1"), 1) Range("C1").ClearContents AnzahlZ = Len(Range("B1")) - 1 For i = AnzahlZ To 1 Step -1 bprop(i, 1) = Right(Mid(Range("B1"), i, 1), 1) For Zeichen = 43 To 235 If bprop(i, 1) = Chr(Zeichen) Then bprop(i, 1) = Chr(Zeichen - zufall) Next bprop2(i) = bprop(i, 1) Range("C1") = Range("C1") & bprop2(i) Next Range("C1") = Range("C1") Range("B1") = Range("C1") Range("C1").ClearContents End Sub