nick2212
Goto Top

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

Content-Key: 276068

Url: https://administrator.de/contentid/276068

Printed on: April 20, 2024 at 01:04 o'clock

Member: emeriks
emeriks Jun 30, 2015 at 19:59:39 (UTC)
Goto Top
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.
Member: Nick2212
Nick2212 Jun 30, 2015 at 20:46:53 (UTC)
Goto Top
Also ich möchte die textdatei nicht aufwendig verschlüsseln sondern eher den Text in der Datei, und ich würde die Datei trotzdem gerne öffnen.
Also ich hatte mir das so vorgestellt, dass die Batch den Inhalt der textdatei liest und dann der Text in der Datei überschrieben wird.
Später kann die andere Batch dann den Text wieder auf den ursprünglichen Text zurücksetzen.

Es würde auch reichen wenn die Zeichen des Textes einfach gegen andere Zeichen ausgetauscht werden. Wobei es aber wichtig wäre, dass Zahlen und "-" unterstützt werden.
Mitglied: 114757
Solution 114757 Jun 30, 2015, updated at Jul 01, 2015 at 13:13:36 (UTC)
Goto Top
Moin,
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"
Entschlüsseln:
cipher /d /a "c:\datei.txt"
Gruß jodel32
Member: Nick2212
Nick2212 Jun 30, 2015 at 22:15:14 (UTC)
Goto Top
Und da hat wer genau darauf Zugriff?
Member: TlBERlUS
TlBERlUS Jul 01, 2015 at 06:09:06 (UTC)
Goto Top
Moin,
Zitat von @Nick2212:
Und da hat wer genau darauf Zugriff?

Jeder, dem du nicht den Zugriff darauf verboten hast? -> siehe @emeriks

Grüße,

Tiberius
Mitglied: 114757
114757 Jul 01, 2015 updated at 06:25:35 (UTC)
Goto Top
Zitat von @Nick2212:
Und da hat wer genau darauf Zugriff?
Einmal kurz gelesen, und du bist schlauer... http://www.different-thinking.de/efs.php
Member: AnkhMorpork
AnkhMorpork Jul 01, 2015 at 07:05:21 (UTC)
Goto Top
Member: Nick2212
Nick2212 Jul 01, 2015 updated at 07:14:17 (UTC)
Goto Top
Aber soweit ich das verstanden habe kann damit nur mein Benutzer die Datei überhaupt lesen.
Oder kann ich die Datei auch auf anderen Rechnern auslesen und dann aber nur mit meinem Windows Passwort?
@114757
Member: emeriks
emeriks Jul 01, 2015, updated at Jun 05, 2019 at 06:27:26 (UTC)
Goto Top
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.
Member: TlBERlUS
TlBERlUS Jul 01, 2015 at 07:36:25 (UTC)
Goto Top
Du könntest sie auch mit 7zip verschlüsseln, dann kannst du die Datei überall auslesen...
Member: DerWoWusste
DerWoWusste Jul 01, 2015 at 08:26:36 (UTC)
Goto Top
Hi.

Man könnte..., man könnte... tausend schöne Dinge tun.
Aber wozu? Gegen was schützt Du DIch denn damit? Wer würde sonst dort mitlesen und wie?
Member: colinardo
Solution colinardo Jul 01, 2015, updated at Jul 02, 2015 at 15:06:15 (UTC)
Goto Top
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 face-wink
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"  
Grüße Uwe
Member: TlBERlUS
TlBERlUS Jul 01, 2015 updated at 09:26:50 (UTC)
Goto Top
Zitat von @colinardo:
Hat da jemand Powershell geflüstert face-wink

Hast du dir konfiguriert, dass du Benachrichtigungen bekommst, sobald jemand etwas von Powershell schreibt? face-smile

Grüße,

Tiberius
Member: colinardo
colinardo Jul 01, 2015 updated at 09:34:24 (UTC)
Goto Top
Zitat von @TlBERlUS:
Hast du dir konfiguriert, dass du Benachrichtigungen bekommst, sobald jemand etwas von Powershell schreibt? face-smile
Sowas habe ich tatsächlich (auch als Powershell-Script face-smile), wenn ich Zeit habe schau ich dann ab und zu mal auf die Liste. Im Moment hab ich aber eher weniger Zeit ..
Member: emeriks
emeriks Jul 01, 2015 at 09:34:57 (UTC)
Goto Top
@colinardo
... ich wusste es! face-wink
Member: AnkhMorpork
AnkhMorpork Jul 01, 2015 at 10:00:58 (UTC)
Goto Top
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. face-smile

Das größte Problem bei Batch-Varianten ist, dass das Passwort immer irgendwo im Klartext auftaucht (sog. Batch-Fluch face-wink ), 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
Member: TlBERlUS
TlBERlUS Jul 01, 2015 at 10:54:06 (UTC)
Goto Top
Zitat von @colinardo:

> Zitat von @TlBERlUS:
> Hast du dir konfiguriert, dass du Benachrichtigungen bekommst, sobald jemand etwas von Powershell schreibt? face-smile
Sowas habe ich tatsächlich (auch als Powershell-Script face-smile), 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
Member: Nick2212
Nick2212 Jul 01, 2015 at 11:07:24 (UTC)
Goto Top
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.
Member: AnkhMorpork
AnkhMorpork Jul 01, 2015 at 11:21:07 (UTC)
Goto Top
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.

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
Member: DerWoWusste
DerWoWusste Jul 01, 2015 updated at 11:54:54 (UTC)
Goto Top
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.
Member: eisbein
eisbein Jul 02, 2015 updated at 14:14:59 (UTC)
Goto Top
Mahlzeit!

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 face-wink

Es gäbe da an mir aber sich auch nach andere Aufbewahrungsorte, wo nicht so schnell wer unbemerkt hinfasst.

Gruß
Eisbein
Member: aqui
aqui Jul 02, 2015 at 14:24:12 (UTC)
Goto Top
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.
Member: gestriger
gestriger Jun 01, 2019 at 05:48:00 (UTC)
Goto Top
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?
Member: colinardo
colinardo Jun 01, 2019 updated at 06:07:48 (UTC)
Goto Top
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.
Dann wäre Verschlüsselung ja obsolet wenn es sowieso jeder dechifrieren könnte.
Member: gestriger
gestriger Jun 01, 2019 at 06:52:18 (UTC)
Goto Top
Ne, ich meine wenn man pass salt und init hat, und das Encrypted aber nicht das decrypted. Wie macht man das sdann im Scrypt?
Member: colinardo
colinardo Jun 01, 2019 updated at 07:03:51 (UTC)
Goto Top
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.
$encrypted = ".................."  
# Entschlüsseln
$decrypted = Decrypt-String -string $encrypted -salt $salt -init $init -password $pass
write-host "Decrypted String: $decrypted"  
Member: gestriger
gestriger Jun 05, 2019 updated at 05:26:33 (UTC)
Goto Top
Na Hoppala. Danke! Ne Warte. Aber oben in deinem Scrypt steht das mit dem ="...." doch gar nicht. Soll ich das dann dazuschreiben?
Member: colinardo
colinardo Jun 05, 2019 updated at 05:55:33 (UTC)
Goto Top
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 face-sad.
Member: emeriks
emeriks Jun 05, 2019 at 06:32:08 (UTC)
Goto Top
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 face-sad.
Der Freitag naht ...
Member: gestriger
gestriger Jun 05, 2019 at 06:37:43 (UTC)
Goto Top
Dass man die Punkte durch DEN string ersetzt war mir doch schon bewusst.
Member: gestriger
gestriger Jun 05, 2019 at 10:35:28 (UTC)
Goto Top
Ich hab es genau so gemacht, nur dass dann in Powershell der Decrypted String: $decrypted" in der letzten Zeile deaktiviert und der Output ist leer. Kannst du es mir genau erklären?