 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
storky

Anmeldungsdatum: 06.01.2013 Beiträge: 68
|
Verfasst am: 07.01.2013, 16:25 Titel: Datei verschlüsseln / File encrypter. |
|
|
Hallo,
hier stelle ich meinen File encrypter (StorkCrypt) vor.
SHA1 Hash Code stammt von:
http://www.freebasic-portal.de/downloads/bibliotheken/hash-funktionen-md5-sha1-sha512-169.html
Download (Mit einfacher GUI):
http://www.bunnxchat.de/StorkCrypt.zip
Wär cool wenn ihr den mal bissel testen könnt, aber ich garantiere für nix. Besser wenn ihr nicht gleich euere Systemdateien verschlüsselt sondern an einer Kopie von irgendwas arbeitet.
LG
Code: | #Include "SHA1Checksum.bas"
declare function FileLen alias "fb_FileLen" ( byval filename as zstring ptr ) as LongInt
Declare Function Replace(ByVal V_Data As String, ByVal V_Expression As String, ByVal V_ReplaceBy As String) As String
Declare sub F_SplitString(V_Data as string, B_DD() as string, byref B_DC as long, V_CutString as string, V_ClearArray as byte, V_Casesensitivity as Byte, V_AddEmpty as Byte)
Dim Shared As Any Ptr w1, w2, w3
Dim Shared Key As String Ptr
Dim Shared Path As String
Dim Shared overallSize As ULongInt
Dim Shared overallSizeCurr As ULongInt
Dim Shared prozent As UInteger
Dim Shared deletestr As String
Dim Shared WriteBuffer as String Ptr
Dim Shared MBS As Long
Dim Shared sec As Long
Dim Crypt As String
WriteBuffer = Callocate(SizeOf(String) * 2)
WriteBuffer[0] = Space(8192)
WriteBuffer[1] = Space(8192)
'look for parameters are given
If InStr(" " & Command(1), "help") Or Command(1) = "" Then
Print "Usage:"
Print "storkcrypt <e|d> <password> <Folder>"
Print "Example: storkcrypt e password c:\secretfolder"
Print "option e = encrypt folder"
Print "option d = decrypt folder"
Print "Press any key to exit."
Sleep
End
EndIf
If LCase(Command(1)) = "e" Then
Crypt = "\*.*"
ElseIf LCase(Command(1)) = "d" Then
Crypt = "\*.crypt"
Else
Print "Illegal option: " & Command(1)
Sleep
End
EndIf
'create Key from password (command parameter 1)
key = Callocate(1, 9)
Key[0] = createSHA1(createSHA1(Command(2) & "Passwd1"))
'de-sha1
For sec = 0 To 39
If sec = 39 Then
key[0][sec] = key[0][sec] Xor key[0][0]
Else
key[0][sec] = key[0][sec] Xor key[0][sec+1]
End If
Next
Path = COMMAND(3)
'Calculate overall size of files
Dim X as long
Dim dd() as string
Dim dc as long
Dim S1 as String
Path = RTrim(Path, "\")
open pipe "dir /s " & Chr(34) & Path & Crypt & Chr(34) for input as #1
While not eof(1)
Line input #1,S1
If Command(1) = "d" Or (Command(1) = "e" And Not InStr (s1, "*.crypt")) Then
If INSTR(S1,"(en)") and INSTR(S1,"Bytes") Then
F_SplitString S1, dd(), dc, ",", 1, 0, 1
overallsize += Val(Replace(Left(LTrim(dd(2)), Len(LTrim(dd(2)))-6), ".", ""))
Locate (1,1,0)
Print overallsize & " Bytes found";
End If
End If
Wend
Close #1
overallsize = overallsize /2
Cls
'encryption thread
Sub worker1(p As string)
Dim As LongInt i, FileSize
Dim As String oPath
Dim As Integer keyPos, newKey
If InStr(p, ".crypt") Then oPath = Replace(p, ".crypt", "") Else oPath = P & ".crypt" End If
Open p For Binary Access Read As #1
Open oPath For Binary Access write As #2
FileSize = Lof(1)+1
i=1
While i
overallSizeCurr +=8192
Get #1, i, writebuffer[1]
For keyPos = 0 To 8191
writebuffer[0][keyPos] = writebuffer[1][keypos] Xor Key[0][newKey]
Filesize-=1
newKey +=1
If newKey =40 Then
newKey = 0
EndIf
If FileSize <= -1 Then
Put #2, i, Left(writebuffer[0], keyPos-1)
Close #1
Close #2
newKey = 0
Exit Sub
EndIf
Next
Put #2, i, writebuffer[0]
i+=8192
Wend
End Sub
'display thread
Sub worker2
Dim AS INTEGER pst, row, lin, vis
Do While 1=1
Locate 2,2,1
For prozent = 0 To Int(overallSizeCurr / overallSize * 100) Step 2
Print Chr(178);
Next
For prozent = Int(overallSizeCurr / overallSize * 100) To 100 Step 2
Print Chr(177);
Next
Locate 3,2,1
Print Int(overallSizeCurr / overallSize * 100) & "%";
Print " (" & Int(overallSizeCurr/1024/1024) & " /" & Int(overallSize/1024/1024) & " MB)";
sec+=1
Print " @~ " & Int(overallSizeCurr/1024/1024/(sec+1)) & " MB/s";
Sleep 1000
Loop
End Sub
w2 = ThreadCreate (@worker2)
'main thrad
OPEN PIPE "dir /b/s/w " & Chr(34) & path & Crypt & Chr(34) FOR INPUT AS #3
Do UNTIL EOF(3)
LINE INPUT #3, Path
If FileLen(path) Then
If Command(1) = "e" Then
If Right(path,5) = "crypt" Then GoTo a
EndIf
w1 = THREADCALL worker1(path)
Locate 4,2,1
Print deletestr;
Locate 4,2,1
Print "Current: " & path;
deletestr = Space(Len(path)+100)
ThreadWait w1
Kill path
End If
a:
Loop
Close #3
Cls
Print "Ready"
End
'various functions
Function Replace(ByVal V_Data As String, ByVal V_Expression As String, ByVal V_ReplaceBy As String) As String
Dim X As Long
Dim SL As Long
Dim D as String
D = V_Data
SL = Len(V_Expression)
X = 0
Do
X = X + 1
If X > Len(D) - SL + 1 Then Exit Do
If Mid(D, X, SL) = V_Expression Then
D = Mid(D, 1, X - 1) & V_ReplaceBy & Mid(D, X + SL)
X = X + (SL - 1)
If X < 0 then X = 0
End If
Loop
Return D
End Function
sub F_SplitString(V_Data as string, B_DD() as string, byref B_DC as long, V_CutString as string, V_ClearArray as byte, V_Casesensitivity as Byte, V_AddEmpty as Byte)
if V_ClearArray = 1 then b_dc = 0
redim preserve b_dd(b_dc) as string
Dim X as long
Dim Pos1 as long
Dim Pos2 as long
Dim SLen as long
Dim T as string
Dim S as string
Dim XOK as byte
s = v_cutstring
if V_Casesensitivity = 0 then s = lcase(v_cutstring)
SLen = len(s)
pos1 = 1
pos2 = 1
for x = 1 to len(v_data) - slen
if V_Casesensitivity = 0 then
if lcase(mid(v_data,x,slen)) = s then
t = mid(v_data,pos1,x-pos1+slen-1)
x+= slen-1
pos1 = x+1
endif
else
if mid(v_data,x,slen) = v_cutstring then
t = mid(v_data,pos1,x-pos1+slen-1)
x+= slen
pos1 = x
endif
endif
if pos1 <> pos2 or x = len(v_data) - slen then
if pos1 = pos2 then t = mid(v_data,pos1)
xok = 1
if t = "" then if v_addempty = 0 then xok = 0
if xok = 1 then
b_dc+= 1
redim preserve b_dd(b_dc) as string
b_dd(b_dc) = t
endif
pos2 = pos1
endif
next
end Sub |
Zuletzt bearbeitet von storky am 08.01.2013, 10:56, insgesamt 5-mal bearbeitet |
|
Nach oben |
|
 |
MOD Fleißiger Referenzredakteur

Anmeldungsdatum: 10.09.2007 Beiträge: 1003
|
Verfasst am: 07.01.2013, 18:27 Titel: |
|
|
Auch wenn du meine SHA1-Umsetzung nutzt, die wenigsten hier werden eine EXE einfach so ausführen. Ich für meinen Teil prüfe und compiliere mir den Code lieber selbst, bevor ich irgendetwas teste. |
|
Nach oben |
|
 |
storky

Anmeldungsdatum: 06.01.2013 Beiträge: 68
|
Verfasst am: 07.01.2013, 18:38 Titel: |
|
|
Hab den Code eingefügt. |
|
Nach oben |
|
 |
ThePuppetMaster

Anmeldungsdatum: 18.02.2007 Beiträge: 1839 Wohnort: [JN58JR]
|
Verfasst am: 07.01.2013, 23:18 Titel: |
|
|
öööm
was machst du da?
Code: | Dim Shared WriteBuffer as String Ptr
WriteBuffer = Allocate(17)
WriteBuffer[0] = Space(8192)
WriteBuffer[1] = Space(8192)
|
das sieht keinesfalls vernümpftig aus.
wenn, dann so hier:
Code: | Dim Shared WriteBuffer as String Ptr
WriteBuffer = CAllocate(SizeOf(String) * 2)
WriteBuffer[0] = Space(8192)
WriteBuffer[1] = Space(8192)
|
MfG
TPM _________________ [ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ] |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4701 Wohnort: ~/
|
Verfasst am: 07.01.2013, 23:34 Titel: |
|
|
Hmm - wenn ich 24 Byte Speicher reserviere und da einen 8192-Byte-String reinschreibe - wenn ich das richtig verstehe - hört sich das nicht so vernünftig an ... _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
ThePuppetMaster

Anmeldungsdatum: 18.02.2007 Beiträge: 1839 Wohnort: [JN58JR]
|
Verfasst am: 07.01.2013, 23:37 Titel: |
|
|
@nemored .. er reserviert string ptr's ... n String is n 12Byte (3x 4 byte uint) type. macht zusammen 24 byte (17 reichen nicht)
dann greift er auf den string per [ ] zu und setzt n space von 8192. das is ansich schon ok. aber der allocate (sollte CAllocate sein um string-type zu nullen) war etwas zu klein.
MfG
TPM _________________ [ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ] |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 07.01.2013, 23:39 Titel: |
|
|
WriteBuffer[0] / WriteBuffer[1] enthält ja nur den String-Header, nicht den Inhalt. Ist trotzdem beides total umständlich - wieso nicht einfach so?
Code: | Dim Shared WriteBuffer(0 to 1) As String |
Ansonsten, was soll SHA-1 (ein bereits als unsicher geltender Hash-Algorithmus) in einem Verschlüsselungsprogramm? SHA-1 ist eine Einwegfunktion und macht hier überhaupt keinen Sinn - Du hast damit immer einen XOR-Schlüssel gleicher Länger, d.h. bei einer Dateilänger größer der Schlüssellänge (eine sehr wahrscheinliche Situation) wird es recht trivial, den Schlüssel zu erraten. _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4701 Wohnort: ~/
|
Verfasst am: 08.01.2013, 01:05 Titel: |
|
|
Jojo hat Folgendes geschrieben: | Ist trotzdem beides total umständlich - wieso nicht einfach so?
Code: | Dim Shared WriteBuffer(0 to 1) As String |
|
Ja, so hätte ich das auch sofort verstanden aber dann hätte ich dafür heute im Chat nicht eine Menge über den internen Aufbau von STRING PTR gelernt.  _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
storky

Anmeldungsdatum: 06.01.2013 Beiträge: 68
|
Verfasst am: 08.01.2013, 07:52 Titel: |
|
|
Hey,
danke für die "Pointerschelte", ich komme frisch von vb6 (8 Jahre Erfahrung) doch dort kam ich nie in den Genuss von Pointern, so war es das erste Mal und ich bin eher experimentell an die Sache rangegangen. Auf die 17 kam ich durch testen erhlich gesagt (ich wusste aber schon, dass das eine komische Zahl ist, aber dachte -> stürzt nicht ab, ok muss nicht größer sein)
Wenn ich das jetzt aber so bedenke schreibt der über seinen Speicher hinaus und könnte eventuell etwas "kaputt machen" und dann doch abschmieren?
Pointer sind aber soweit schonmal was richtig feines, hatte in etwa den selben Algo vorher in VB6 umgesetzt und kam an Stringfunktionen nicht vorbei, also:
out = out & chr(asc(mid(alt, stelle, 1)) xor asc(mid(key, stelle, 1)))
^^will nicht wissen wie lang das in Assembler in HD ist war aufjedenfall ein Programm zum schön warten. Durch die Pointer kann ich jedoch mit 2 Ticks (durch die indexes) direkt das Byte verrechnen und zurück schreiben?
@Jojo
Zitat: | Ansonsten, was soll SHA-1 (ein bereits als unsicher geltender Hash-Algorithmus) in einem Verschlüsselungsprogramm? SHA-1 ist eine Einwegfunktion und macht hier überhaupt keinen Sinn |
Sha1 wird verwendet um das Passwort zu hashen mit dem die Datei verschlüsselt wird und wird nicht auf die Datei angewandt. Das ist notwendig da man sonst stellen weiße Bruteforcen könnte. Ist Quasi ein Pseudozufallsgenerator dem das eingegebene Passwort als Initialwert dient.
Ich setze die gesamte Datei ins Xor mit Key, der fängt immer wieder an der ersten Stelle an bis die ganze Datei durch ist, die einzigste Möglichkeit das zu cracken ist..
a) Angreifer kennt ein Stück Originaldatei, z.B. Fileheader, setzt das ins XOR und erhält den key den er cracken muss und nicht jeder wird SHA1 Kollisionen provozieren können.. selbst wenn, eine Sache gilt als sicher wenn der Aufwand oder die Zeit zum knacken die Dauer überschreitet, in der die Informationen als "wichtig" gelten.
b) man Findet ein damaliges 0 Byte Segment wo der Key dann im Klartext drin steht, das Segment sollte 80 Bytes lang sein.. dann kann man sicher sein dass der Key einmal komplett drin steht, dann auch cracken^^
Ich denke für Normalanwender völlig ok, wobei ich während einigen Tests selbst ne Datei verschlüsselt und das Pw fast vergessen habe, war ne AVI die im Head haufen Nullbytes hat... hab dann solange von meinen Erinnerungsversuchen hash(hash(versuch.Passwd1)) gebildet bis der Key aus dem Head Teilweiße auftauchte, hat geklappt aber ich hab das Pw ja quasi gewusst am Ende... Bruteforce geht anders.
Zuerst hatte ich aber auch vor den Key ständig mit sich selbst versetzt in Xor zu nehmen und aller 40 Bytes neu zu hashen etc, aber das ging deftig auf die Performance, könnte vllt noch ne Option für Paranoide anbieten die viel Zeit haben, oder halt einzenlne Dateien verschlüsseln wollen die wirklich wichtig sind.
So ich bin dann mal weg und studiere Pointer.
LG
Edit:
"Key mit sich selbst versetzt ins Xor nehmen" <- dazu fällt mir gerade ein, wenn ich das am Anfang einmal mache, hat meinen einen unbrauchbaren Sha1 Hash... weil dann muss man bis zu 36^40 Möglichkeiten durchgehen, bis man den Hash hat der in 2 facher sha1 Verschlüsselung + den String, die verschlüsselte Bytefolge ergibt die auf den 0 Bytes liegt oder den man anhand einer Originaldatei errechnet hat.
Also da wär dann die Pornosammlung vor der Freundin entgültig geheim
@Jojo nicht falsch verstehen, war ein Witz.. ist natürlich richtig, dass man nach seinen Möglichkeiten so eine Sache möglichst gut machen sollte, deswegen werde ich das noch reinbasteln.
Edit2:
Hab das oben genannte umgesetzt, den Pointer nach ThePuppetMaster geändert, was am Threading geändert (damit der Verschlüsslungstread überhaupt zu etwas simultan läuft) und was an der Consolenausgabe optimiert.
Hab das Codelisting und Archiv geupdatet.
Das Schöne ist jetzt, man sieht auf ehemaligen 0 Byte Segmenten nciht mehr, dass es sich im einen Hash handelt... Maximal eine Wiederholung von Bytes.
Danke schonmal
Nochmals Edit... Habe etwas an der Benutzbarkeit gefeilt, man kann nun de/encryption als option übergeben, je nach dem werden *.* oder nur *.crypt Dateien bearbeitet. Falls mal was schief läuft, kann man an der alten Stelle fortsetzen ohne gecryptete Dateien doppelt zu verschlüsseln oder unverschlüsselte zu verschlüsseln... |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 08.01.2013, 11:55 Titel: |
|
|
storky hat Folgendes geschrieben: | Sha1 wird verwendet um das Passwort zu hashen mit dem die Datei verschlüsselt wird und wird nicht auf die Datei angewandt. Das ist notwendig da man sonst stellen weiße Bruteforcen könnte. Ist Quasi ein Pseudozufallsgenerator dem das eingegebene Passwort als Initialwert dient. |
Und? Dann bruteforct man eben den SHA-1-Key und nicht das originale Passwort. Das wird einem Angreifer eh egal sein, der will nur an die Daten. XOR-Verschlüsselung mit so einem Key ist immer gleich unsicher, egal wie oft du ihn hashst. _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
Verfasst am: 08.01.2013, 12:31 Titel: |
|
|
Jojo hat Folgendes geschrieben: | storky hat Folgendes geschrieben: | Sha1 wird verwendet um das Passwort zu hashen mit dem die Datei verschlüsselt wird und wird nicht auf die Datei angewandt. Das ist notwendig da man sonst stellen weiße Bruteforcen könnte. Ist Quasi ein Pseudozufallsgenerator dem das eingegebene Passwort als Initialwert dient. |
Und? Dann bruteforct man eben den SHA-1-Key und nicht das originale Passwort. Das wird einem Angreifer eh egal sein, der will nur an die Daten. XOR-Verschlüsselung mit so einem Key ist immer gleich unsicher, egal wie oft du ihn hashst. |
Das ist absolut gold-richtig.
Eine sichere Verschlüsselung muss einiges leisten. Grobe Hinweise zur Implementierung:
-Eine echte Schlüsselableitungsfunktion verwenden. Ich hab vor einiger Zeit da mal was drüber geschrieben wie das grob geht: http://blog.enkore.de/truecrypt-breach/ Abschnitt Key Derivation
-Einen sicheren Verschlüsselungsalgorithmus im richtigen Modus verwenden.
Als Algorithmus nimmt man meistens AES.
Als Modus werden heutzutage meistens CBC/ESSIV oder XTS benutzt. Reines CBC ist recht einfach zu implementieren und auch halbwegs sicher… |
|
Nach oben |
|
 |
storky

Anmeldungsdatum: 06.01.2013 Beiträge: 68
|
Verfasst am: 08.01.2013, 13:03 Titel: |
|
|
Ja aes hatte ich Anfangs vor, jedoch möchte ich auf die Änderung hinweißen:
Code: | 'create Key from password (command parameter 1)
key = Callocate(1, 9)
Key[0] = createSHA1(createSHA1(Command(2) & "Passwd1"))
'de-sha1
For sec = 0 To 39
If sec = 39 Then
key[0][sec] = key[0][sec] Xor key[0][0]
Else
key[0][sec] = key[0][sec] Xor key[0][sec+1]
End If
Next |
^^Dass ich während der ganzen Verschlüsslung überhaupt kein Sha1 verwende. Da der Key sich nach doppeltem Hashvorgang (nur um das pw auf min 40 zeichen zu bringen) selbst ins xor nimmt und xor nur rückgängig gemacht werden kann wenn beide Operanten bekannt sind, muss man 36^40 Möglichkeiten durchgehen im einen sha1 hash zu erhalten der auf einen sha1 hash passt der wiederrum zum pw gehört.
Der Hashvorgang dient ausschließlich dazu, dass z.B. bei pw "hallo", pw "halli" nicht ein teilweiße richtiges Ergebnis liefert, hat aber mit der Verschlüsslung gar nix zu tun und ist eine Art Zufallsgenerator.
Da irre ich mich doch nicht?
Oder ganz einfach:
http://bunnxchat.de/1.txt.crypt
Wers schafft zu knacken,.. ja weiß auch nicht.. äh der ist schlau
Nachtrag, bei dem ganzen Trubaborium ist mir aber jetzt mal aufgefallen, dass eine vollständige 80 Bytes lange %00 Kette oder 40 Bytes Originaldatei immer noch ausreicht um die Datei zu entschlüsseln, da man dann auf den ganzen Schmodder wie das generiert wird verzichten und den Key einfach auslesen kann, da ist dann auch völlig egal ob der SHA1 ist oder nicht oder einfach 12345... ist vielleicht auch das was du meinstest. (Ist aber bei der Hackaufgabe nicht der Fall )
Der Key muss unbedingt rotieren. |
|
Nach oben |
|
 |
storky

Anmeldungsdatum: 06.01.2013 Beiträge: 68
|
Verfasst am: 08.01.2013, 13:22 Titel: |
|
|
Zitat: | Und? Dann bruteforct man eben den SHA-1-Key und nicht das originale Passwort. Das wird einem Angreifer eh egal sein, der will nur an die Daten. XOR-Verschlüsselung mit so einem Key ist immer gleich unsicher, egal wie oft du ihn hashst.
|
Ja ok ich sehs ein, ^^nach meiner Änderung bruteforced man dann ebend den ultimativen, kaputten, nicht wiederherrstellbaren Sha1 Key, ist völlig Wurst. Sobald man weiß wonach man sucht, sind die Chancen noch ziehmlich groß fündig zu werden...
Hmm, Denkpause.
Edit: Bin aber immer noch der Auffassung, dass man mit dem Prog seine Daten vor "normalen" Menschen gut verstecken kann. Weil das hier so einen professionellen Touch annimmt. Aber why not? Bissel Weiterentwickeln schadet nicht. |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 08.01.2013, 14:51 Titel: |
|
|
"Normale" Menschen möchten vermutlich auch nicht in deinen Daten rumschnüffeln. Das Projekt mag jetzt einen netten Lerneffekt gehabt haben, aber wenn du wirklich eine funktionierende Verschlüsselung einsetzen möchtest, solltest du lieber auf Projekte wie TrueCrypt zurückgreifen (allein schon wegen des erhöhten Komforts). Verschlüsselungstechnik ist keineswegs trivial und sollte nur von Leuten implementiert werden, die auch wirklich wissen, was sie tun und auch beweisen können, dass ihre Implementierung korrekt und sicher ist. _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
Verfasst am: 08.01.2013, 22:50 Titel: |
|
|
Jojo hat Folgendes geschrieben: | "Normale" Menschen möchten vermutlich auch nicht in deinen Daten rumschnüffeln. Das Projekt mag jetzt einen netten Lerneffekt gehabt haben, aber wenn du wirklich eine funktionierende Verschlüsselung einsetzen möchtest, solltest du lieber auf Projekte wie TrueCrypt zurückgreifen (allein schon wegen des erhöhten Komforts). Verschlüsselungstechnik ist keineswegs trivial und sollte nur von Leuten implementiert werden, die auch wirklich wissen, was sie tun und auch beweisen können, dass ihre Implementierung korrekt und sicher ist. |
dm-crypt/LUKS!  |
|
Nach oben |
|
 |
Flo aka kleiner_hacker
Anmeldungsdatum: 23.06.2006 Beiträge: 1210
|
Verfasst am: 10.01.2013, 03:17 Titel: |
|
|
GELI! _________________ MFG
Flo
Satoru Iwata: Wer Spaß am Spielen hat, fragt nicht nach Grafik.
zum korrekten Verstaendnis meiner Beitraege ist die regelmaessige Wartung des Ironiedetektors unerlaesslich. |
|
Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|