Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Datei verschlüsseln / File encrypter.

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Projektvorstellungen
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
storky



Anmeldungsdatum: 06.01.2013
Beiträge: 68

BeitragVerfasst am: 07.01.2013, 16:25    Titel: Datei verschlüsseln / File encrypter. Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
MOD
Fleißiger Referenzredakteur


Anmeldungsdatum: 10.09.2007
Beiträge: 1003

BeitragVerfasst am: 07.01.2013, 18:27    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
storky



Anmeldungsdatum: 06.01.2013
Beiträge: 68

BeitragVerfasst am: 07.01.2013, 18:38    Titel: Antworten mit Zitat

Hab den Code eingefügt.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ThePuppetMaster



Anmeldungsdatum: 18.02.2007
Beiträge: 1839
Wohnort: [JN58JR]

BeitragVerfasst am: 07.01.2013, 23:18    Titel: Antworten mit Zitat

ööö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
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4701
Wohnort: ~/

BeitragVerfasst am: 07.01.2013, 23:34    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
ThePuppetMaster



Anmeldungsdatum: 18.02.2007
Beiträge: 1839
Wohnort: [JN58JR]

BeitragVerfasst am: 07.01.2013, 23:37    Titel: Antworten mit Zitat

@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
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 07.01.2013, 23:39    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4701
Wohnort: ~/

BeitragVerfasst am: 08.01.2013, 01:05    Titel: Antworten mit Zitat

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 happy aber dann hätte ich dafür heute im Chat nicht eine Menge über den internen Aufbau von STRING PTR gelernt. lächeln
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
storky



Anmeldungsdatum: 06.01.2013
Beiträge: 68

BeitragVerfasst am: 08.01.2013, 07:52    Titel: Antworten mit Zitat

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 grinsen 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 grinsen
@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 lächeln

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
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 08.01.2013, 11:55    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
28398



Anmeldungsdatum: 25.04.2008
Beiträge: 1917

BeitragVerfasst am: 08.01.2013, 12:31    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
storky



Anmeldungsdatum: 06.01.2013
Beiträge: 68

BeitragVerfasst am: 08.01.2013, 13:03    Titel: Antworten mit Zitat

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 grinsen

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 Zunge rausstrecken )

Der Key muss unbedingt rotieren.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
storky



Anmeldungsdatum: 06.01.2013
Beiträge: 68

BeitragVerfasst am: 08.01.2013, 13:22    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 08.01.2013, 14:51    Titel: Antworten mit Zitat

"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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
28398



Anmeldungsdatum: 25.04.2008
Beiträge: 1917

BeitragVerfasst am: 08.01.2013, 22:50    Titel: Antworten mit Zitat

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! lächeln
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Flo
aka kleiner_hacker


Anmeldungsdatum: 23.06.2006
Beiträge: 1210

BeitragVerfasst am: 10.01.2013, 03:17    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Projektvorstellungen Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
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.

 Impressum :: Datenschutz