Krypteret tekst algoritme.?

Tags:    programmering

<< < 12 > >>
Hey udviklere..

Jeg sad her den anden dag og arbejdede lidt med kryptering, og kom til at tænke på, at det hele jo bare lignede volapyk, og kom også til at tænke på, at det var underligt, at uanset hvilken længde teksten man kryptere har, har den krypterede linie altid den samme længde :S

Nå anyway. Det jeg egentligt var ude efter at vide var, hvordan kan man se forskel på fx. MD4 og MD5 kryptering.? Og er der nogen form for programmer man kan køre den krypterede tekst igennem, og den derefter fortæller hvilken algoritme der er brugt, eller der der nogle måder man bare kan se det på.?

Jeg har nemlig en krypteret tekst, har både klar tekst og krypteret, men jeg aner ikke hvilken algoritme der er brugt til at kryptere.?

Det var et gammelt password jeg havde liggende i min database jeg har krypteret en gang, og nu kan jeg ikke huske hvilken algoritme jeg brugte :S

(gættede mig frem til passwordet, og da det kun var brugt til en test bruger, kunne jeg hurtigt, da jeg plejer at bruge noget MEGET simpelt til test ;))
I kan evt. se den krypterede tekst her:
Fold kodeboks ind/udKode 


Jeg vil ikke tilbyde nogle point for en løsning, ikke fordi jeg ikke har point, men fordi jeg bare er nysgerrig efter at finde ud af det :)



For det første at teksten ikke krypteret. Den er hashet. Lige meget hvad du "krypterer" vil resultatet altid blive en 32-karakters hexadecimal streng. Derfor findes der heller ikke måder at dekryptere det på. Både MD4 og 5 genererer 32-karakters strenge, så man kan ikke se forskel på dem.



Hvad betyder det er den er "hashet" ..?

Og det med at man ikke kan dekryptere passer ikke helt. Det er bare et spørgsmål om hvor lang tid man gider vente ;)



Det betyder at man laver en streng ud fra noget data, men der kan godt være flere forskellige datastrenge der giver den samme hash, men hashen af en tekst vil altid give det samme. Det er hele ideen. Hvis du sendte end 800 megabyte fil til en ven, og gav ham en hash der beskrev de 800 megabyte data, så kunne din ven selv lave en hash af filen, og hvis den så ikke er magen til den hash han fik af dig, så er filen korrupt. Her er det en fordel at hashen kun fylder f.eks. 128 bit som i MD5.

En hash er altså en "envejskryptering", den kan ikke dekrypteres. Hvis man vil bryde en hash, må man bare prøve sig frem, til man finder noget som, når det bliver hashet med samme algorithme, giver samme hash som det oprindelige.



Indlæg senest redigeret d. 23.06.2007 22:16 af Bruger #2330
Det betyder at man laver en streng ud fra noget data, men der kan godt være flere forskellige datastrenge der giver den samme hash, men hashen af en tekst vil altid give det samme. Det er hele ideen. Hvis du sendte end 800 megabyte fil til en ven, og gav ham en hash der beskrev de 800 megabyte data, så kunne din ven selv lave en hash af filen, og hvis den så ikke er magen til den hash han fik af dig, så er filen korrupt. Her er det en fordel at hashen kun fylder f.eks. 128 bit som i MD5.

En hash er altså en "envejskryptering", den kan ikke dekrypteres. Hvis man vil bryde en hash, må man bare prøve sig frem, til man finder noget som, når det bliver hashet med samme algorithme, giver samme hash som det oprindelige.


En fra min gamle folkeskoleklasse satte sin computer til at generere md5-hashes til tastekombinationer på op til 6 tegn, og gemte dem i en database.

Det vil sige at hvis han opsnapper en hashet streng, kan kan køre en søgning i sin database på strengen, og finde den tilsvarende ikke-hashede streng.



Er MD5 ikke også en envejskryptering.?

syntes, når jeg læser noget om MD5, at der står "MD5 hash" eller "MD4 hash" så er de ikke også hashes..?



Indlæg senest redigeret d. 23.06.2007 23:57 af Bruger #8773
Ehh, jo, det er det som der hele tiden er blevet sagt.



Okay..

Men hvis det er en hash, den jeg sendte før, hvilken hash er det så.?

Er der nogen måde at se det.?

Altså MD2, MD4, MD5, SHA-1, SHA-2 osv..?



Det eneste du lige umiddelbart kan se det på er længden af hashen.

Både MD2, MD4 og MD5 er 128 bits.

SHA-0 og SHA-1 og 160 bits.

Så er der så SHA-224, SHA-256, SHA-384, og SHA-512. Deres bitlængder svare til nummeret bagefter, så SHA-224 har altså 224 bits i en hash.



Indlæg senest redigeret d. 24.06.2007 01:01 af Bruger #2330
En fra min gamle folkeskoleklasse satte sin computer til at generere md5-hashes til tastekombinationer på op til 6 tegn, og gemte dem i en database.

Det vil sige at hvis han opsnapper en hashet streng, kan kan køre en søgning i sin database på strengen, og finde den tilsvarende ikke-hashede streng.


http://en.wikipedia.org/wiki/Rainbow_table - En såkaldt Rainbow tabel.



Det eneste du lige umiddelbart kan se det på er længden af hashen.

Både MD2, MD4 og MD5 er 128 bits.

SHA-0 og SHA-1 og 160 bits.

Så er der så SHA-224, SHA-256, SHA-384, og SHA-512. Deres bitlængder svare til nummeret bagefter, så SHA-224 har altså 224 bits i en hash.


Hvad betyder de der bit.?

Det kan jo ikke passe at det er fordi teksten er 128 tegn lang (hvis det var 128 bit) så hvad betyder de der bits.? :)



<< < 12 > >>
t