Textdatei verschlüsseln per Batch
Hi Leute ich wollte einmal fragen ob es eine Möglichkeit gibt, den Inhalt einer Textdatei per Batch zu verschlüsseln und später auch wieder zu entschlüsseln.
Also es geht mir nicht darum das der Text in der Datei total toll verschlüsselt ist,sondern eher darum das man ihn nicht einfach auslesen kann.
Und ich wollte fragen ob man das mit zwei verschiedenen Dateien machen kann?
Also die eine Batch entschlüsselt und die andere verschlüsselt.
Schon mal vielen Dank im Voraus.
LG Nick2212
Also es geht mir nicht darum das der Text in der Datei total toll verschlüsselt ist,sondern eher darum das man ihn nicht einfach auslesen kann.
Und ich wollte fragen ob man das mit zwei verschiedenen Dateien machen kann?
Also die eine Batch entschlüsselt und die andere verschlüsselt.
Schon mal vielen Dank im Voraus.
LG Nick2212
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 276068
Url: https://administrator.de/contentid/276068
Ausgedruckt am: 25.11.2024 um 06:11 Uhr
31 Kommentare
Neuester Kommentar
Also es geht mir nicht darum das der Text in der Datei total toll verschlüsselt ist,sondern eher darum das man ihn nicht einfach auslesen kann.
Du willst ihn verschlüsseln aber nicht "total toll verschlüsseln"?Aha. Kannst Du uns bitte mal erläutern, wo für Dich "total voll" anfängt?
Wenn es Dir darum geht, dass man bestimmte Dateien nur lesen darf, wenn man dazu berechtigt ist, dann kann man das auch mit NTFS-Berechtigungen erledigen.
E.
Moin,
nutz doch die NTFS Verschlüsselung und den CMD-Befehl cipher
https://technet.microsoft.com/de-de/library/bb490878.aspx
Verschlüsseln:
Entschlüsseln:
Gruß jodel32
nutz doch die NTFS Verschlüsselung und den CMD-Befehl cipher
https://technet.microsoft.com/de-de/library/bb490878.aspx
Verschlüsseln:
cipher /e /a "c:\datei.txt"
cipher /d /a "c:\datei.txt"
Einmal kurz gelesen, und du bist schlauer... http://www.different-thinking.de/efs.php
Schnupper da mal rein:
https://gallery.technet.microsoft.com/scriptcenter/PowerShell-Encryption ...
Gruß
Ankh
https://gallery.technet.microsoft.com/scriptcenter/PowerShell-Encryption ...
Gruß
Ankh
Hi,
cipher verschlüsselt über EFS. EFS Verschlüsselung erfolgt unter Verwendung von Zertifikaten. Jeder Benutzer, welcher dieses Zertifikat samt privaten Schlüssel in seinem Profil installiert hat, kann diese Datei lesen und ändern. Vorausgesetzt, er hat die NTFS-Berechtiungen dafür.
Bei der Variante mit Powershell kann jeder die Datei entschlüsseln, der weiß, womit sie verschlüsselt wurde und der den entsprechenden Schlüssel hat.
E.
cipher verschlüsselt über EFS. EFS Verschlüsselung erfolgt unter Verwendung von Zertifikaten. Jeder Benutzer, welcher dieses Zertifikat samt privaten Schlüssel in seinem Profil installiert hat, kann diese Datei lesen und ändern. Vorausgesetzt, er hat die NTFS-Berechtiungen dafür.
Bei der Variante mit Powershell kann jeder die Datei entschlüsseln, der weiß, womit sie verschlüsselt wurde und der den entsprechenden Schlüssel hat.
E.
Zitat von @emeriks:
Bei der Variante mit Powershell kann jeder die datei entschlüsseln, der weiß, womit sie verschlüsselt wurde und
der den entsprechenden Schlüssel hat.
Hat da jemand Powershell geflüstert Bei der Variante mit Powershell kann jeder die datei entschlüsseln, der weiß, womit sie verschlüsselt wurde und
der den entsprechenden Schlüssel hat.
function Encrypt-String($plaintext,$password,$salt='jj3h4h5+tbbj2j281273#+', $init='j3j35&#*23kkk35!'){
$p = new-Object System.Security.Cryptography.AesManaged
$p.Key = (new-Object Security.Cryptography.PasswordDeriveBytes ([Text.Encoding]::UTF8.GetBytes($password)), ([Text.Encoding]::UTF8.GetBytes($salt)), "SHA1", 5).GetBytes(32) #256/8
$p.IV = (new-Object Security.Cryptography.SHA1Managed).ComputeHash( [Text.Encoding]::UTF8.GetBytes($init) )[0..15]
$encryptor = $p.CreateEncryptor()
$msEncrypt = New-Object IO.MemoryStream
$csEncrypt = New-Object Security.Cryptography.CryptoStream $msEncrypt,$encryptor,"Write"
$swEncrypt = New-Object IO.StreamWriter $csEncrypt
$swEncrypt.Write($plaintext)
$swEncrypt.Close()
$csEncrypt.Close()
$msEncrypt.Close()
$p.Clear()
[byte[]]$result = $msEncrypt.toArray()
return [Convert]::ToBase64String($result)
}
function Decrypt-String($string,$password,$salt='jj3h4h5+tbbj2j281273#+', $init='j3j35&#*23kkk35!'){
$p = new-Object System.Security.Cryptography.AesManaged
$p.Key = (new-Object Security.Cryptography.PasswordDeriveBytes ([Text.Encoding]::UTF8.GetBytes($password)), ([Text.Encoding]::UTF8.GetBytes($salt)), "SHA1", 5).GetBytes(32) #256/8
$p.IV = (new-Object Security.Cryptography.SHA1Managed).ComputeHash( [Text.Encoding]::UTF8.GetBytes($init) )[0..15]
$decryptor = $p.CreateDecryptor()
$msDecrypt = New-Object IO.MemoryStream @(,([Convert]::FromBase64String($string)))
$csDecrypt = New-Object Security.Cryptography.CryptoStream $msDecrypt,$decryptor,"Read"
$srDecrypt = New-Object IO.StreamReader $csDecrypt
[string]$result = $srDecrypt.ReadtoEnd()
$srDecrypt.Close()
$csDecrypt.Close()
$msDecrypt.Close()
$p.Clear()
return $result
}
# Secrets
$salt = "h23hh4h8sdfz823bkj234))(7lsdf"
$init = "hshh3w4gh34k*'#sfjo34"
$pass = 'MySecret'
# Text der verschlüsselt werden soll
$myplainText = 'Das ist ein ganz geheimer Text'
# Verschlüsseln
$encrypted = Encrypt-String -plaintext $myplainText -salt $salt -init $init -password $pass
write-host "Encrypted String: $encrypted"
# Entschlüsseln
$decrypted = Decrypt-String -string $encrypted -salt $salt -init $init -password $pass
write-host "Decrypted String: $decrypted"
Hast du dir konfiguriert, dass du Benachrichtigungen bekommst, sobald jemand etwas von Powershell schreibt?
Grüße,
Tiberius
Zitat von @TlBERlUS:
Hast du dir konfiguriert, dass du Benachrichtigungen bekommst, sobald jemand etwas von Powershell schreibt?
Sowas habe ich tatsächlich (auch als Powershell-Script ), wenn ich Zeit habe schau ich dann ab und zu mal auf die Liste. Im Moment hab ich aber eher weniger Zeit ..Hast du dir konfiguriert, dass du Benachrichtigungen bekommst, sobald jemand etwas von Powershell schreibt?
@colinardo
... ich wusste es!
... ich wusste es!
Zitat von @emeriks:
Bei der Variante mit Powershell kann jeder die datei entschlüsseln, der weiß, womit sie verschlüsselt wurde und
der den entsprechenden Schlüssel hat.
Klar, dann kann das jeder Vollhonk. Bei der Variante mit Powershell kann jeder die datei entschlüsseln, der weiß, womit sie verschlüsselt wurde und
der den entsprechenden Schlüssel hat.
Das größte Problem bei Batch-Varianten ist, dass das Passwort immer irgendwo im Klartext auftaucht (sog. Batch-Fluch ), auch beim berüchtigten Bat2Exe-Gedöns.
Diese Methode ist auch scherzig:
https://tobivnext.wordpress.com/2012/06/18/powershell-cmdlet-zum-auslese ...
Gruß
Ankh
Zitat von @colinardo:
> Zitat von @TlBERlUS:
> Hast du dir konfiguriert, dass du Benachrichtigungen bekommst, sobald jemand etwas von Powershell schreibt?
Sowas habe ich tatsächlich (auch als Powershell-Script ), wenn ich Zeit habe schau ich dann ab und zu mal auf die
Liste. Im Moment hab ich aber eher weniger Zeit ..
> Zitat von @TlBERlUS:
> Hast du dir konfiguriert, dass du Benachrichtigungen bekommst, sobald jemand etwas von Powershell schreibt?
Sowas habe ich tatsächlich (auch als Powershell-Script ), wenn ich Zeit habe schau ich dann ab und zu mal auf die
Liste. Im Moment hab ich aber eher weniger Zeit ..
Das erklärt so einiges O.o
Zitat von @Nick2212:
Das würde mich ja garnicht stören es geht nur darum dass niemand (auch ich nicht) ohne passwort den richtigen text lesen
kann.
Und wenn man das in der exe lesen kann wäre es nicht ganz so schlimm.
Das würde mich ja garnicht stören es geht nur darum dass niemand (auch ich nicht) ohne passwort den richtigen text lesen
kann.
Und wenn man das in der exe lesen kann wäre es nicht ganz so schlimm.
Es wäre von Vorteil, wenn du den Beitrag, auf den du dich beziehst, auch zitierst. So lässt sich das nur schwer zuordnen - hängt irgendwie in der Luft.
Ankh
es geht nur darum dass niemand (auch ich nicht) ohne passwort den richtigen text lesen kann.
Das ist leicht paranoid. Dann muss der Text schon so bedeutsam sein, wie eine Kennwortdatenbank, oder vielleicht der Schlüssel zu den Kronjuwelen.Normalerweise schützt man Text, den man öfter ansieht, der aber sehr schützenswert ist, nur durch die üblichen Mechanismen:
-Platte verschlüsselt, Nutzerkennwort gesetzt, Bildschirm wird bei Abwesenheit gesperrt.
Wenn Du meinst, etwas darüber hinaus machen zu müssen, müsstest Du zuvor noch ganz andere Maßnahmen ergreifen, denn sonst ist das vergebliche Mühe.
Mahlzeit!
Ich bin vielleicht altmodisch, aber ich bin stolzer Besitzer eines dieser Hi-Tech-USB-Sticks und der hängt mir um den Hals
Es gäbe da an mir aber sich auch nach andere Aufbewahrungsorte, wo nicht so schnell wer unbemerkt hinfasst.
Gruß
Eisbein
es geht nur darum dass niemand (auch ich nicht) ohne passwort den richtigen text lesen kann.
Ich bin vielleicht altmodisch, aber ich bin stolzer Besitzer eines dieser Hi-Tech-USB-Sticks und der hängt mir um den Hals
Es gäbe da an mir aber sich auch nach andere Aufbewahrungsorte, wo nicht so schnell wer unbemerkt hinfasst.
Gruß
Eisbein
Das würde mich ja garnicht stören es geht nur darum dass niemand (auch ich nicht) ohne passwort den richtigen text lesen kann. Und wenn man das in der exe lesen kann wäre es nicht ganz so schlimm.
Die Lösung hast du ja nun vom Kollegen colinardo oben auf dem Silbertablett serviert bekommen !Auf "Gelöst" ist ja eh geklickt...also alles gut.
Zitat von @gestriger:
Hey, ich wollte mal fragen, (bin nicht allzu bewandert was das angeht), wie kriege ich den Decrypted-Text raus wenn ich nur den Encrypted Text hab?
Ohne Passwort, Salt und Init, garnicht.Hey, ich wollte mal fragen, (bin nicht allzu bewandert was das angeht), wie kriege ich den Decrypted-Text raus wenn ich nur den Encrypted Text hab?
Dann wäre Verschlüsselung ja obsolet wenn es sowieso jeder dechifrieren könnte.
Zitat von @gestriger:
Ne, ich meine wenn man pass salt und init hat, und das Encrypted aber nicht das decrypted. Wie macht man das sdann im Scrypt?
Öhm, das steht doch oben im Beispiel im Abschnitt "Entschlüsseln", einfach mal komplett lesen würde ich dir empfehlen.Ne, ich meine wenn man pass salt und init hat, und das Encrypted aber nicht das decrypted. Wie macht man das sdann im Scrypt?
$encrypted = ".................."
# Entschlüsseln
$decrypted = Decrypt-String -string $encrypted -salt $salt -init $init -password $pass
write-host "Decrypted String: $decrypted"
Zitat von @gestriger:
Na Hoppala. Danke! Ne Warte. Aber oben in deinem Scrypt steht das mit dem ="...." doch gar nicht. Soll ich das dann dazuschreiben?
Oh man, die Punkte ersetzt du natürlich durch deinen bereits verschlüsselten String! Also so blöd kann man sich doch nun wirklich nicht anstellen .Na Hoppala. Danke! Ne Warte. Aber oben in deinem Scrypt steht das mit dem ="...." doch gar nicht. Soll ich das dann dazuschreiben?
Zitat von @colinardo:
Oh man, die Punkte ersetzt du natürlich durch deinen bereits verschlüsselten String! Also so blöd kann man sich doch nun wirklich nicht anstellen .
Der Freitag naht ...Oh man, die Punkte ersetzt du natürlich durch deinen bereits verschlüsselten String! Also so blöd kann man sich doch nun wirklich nicht anstellen .