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, 10:26 (Dieser Beitrag wurde zuletzt bearbeitet: 25.03.2020, 10: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, 00:40 (Dieser Beitrag wurde zuletzt bearbeitet: 27.04.2020, 05: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