22. juli 2003 - 17:02Der er
34 kommentarer og 1 løsning
Let kryptering
Dau
Jeg har brug for at få et program til at indlæse nogle ord fra en fil og jeg vil ikke have at brugeren bare skal åbne den og ændre på indholdet.
Min løsning på detteher bliver at kryptere filen men jeg har ikke rigtig nogen erfaring med dette så derfor vil jeg gerne vide hvordan jeg kan kryptere filen let. og slevfølgelig dekryptere det igen :)
havd med at lave en XOR på det der skal krypteres det der sker er at bitne vendes ikke nogle stærk kryptering men det gør at det er uforståligt for alm. mennesker.
bufferzone> Så skal du da have et api kald til PGP ...
Du kan enten bruge et crypto bibliotek hvilket giver en høj grad af sikkerhed eller du kan implementere dit eget.
Det letteste er blot at have en nøgle, som du XOR'er indholdet af filen med før skrivning og efter læsning.
Eks: Key = k1 k2 k3 k4 k5 .... kn, hvor ki er en byte.
Når du læser dine data tager du byte for byte og laver en XOR med k[n]
Lad os antage at der står hej med dig
i filen og key = "dette er min hemmelige xor streng"
h XOR d = første bogstav krypteret = 104 XOR 100 = 12 (104 er ASCII værdien for h og 100 for d) e XOR e j XOR t m XOR t e XOR e d XOR e d XOR r i XOR m g XOR i
XOR er sin egen inverse funktion, så dekryptering foregår på samme måde: 12 XOR 100 = 104 = h
osv.
XOR er 100% sikker kryptering hvis nøglen ikke skal genbruges (hvilket den nok skal i dit tilfælde, da den skal ligge i programmet).
Det er umuligt at lægge en nøgle ind i et program og skjule den så den ikke kan findes og bruges til dekryptering. Det kan gøre mere eller mindre let for pilfingre.
webshortcut> XOR er 100% sikkert hvis en oberservatør ikke kender plaintexten. Nøglen skal naturligvis have en hvis størrelse, så man ikke blot kan teste med alle kombinationer.
For en bitstreng på n bits er dette 2^n'te muligheder. Man kan så regne på, hvor stor den skal være for at man ikke kan bruteforce nøglen.
Hvis man ved lidt om de krypterede data (ex. at det er genkendelige ord) kan man naturligvis lave et angreb med ex. 8 bogstaver og således gætte en del af nøglen ad gangen...
jpvj>ja og nej, hvis du vil bruge pgp, så skal du have et api kald, men så svært er det jo heller ikke at lave en krypteringsalgoritme med programmering, hvis den må være simpel
... og det skyldes naturligvis, at output har en uniform fordeling i ciffertext rummet - helt uafhængig af input, når man betragter en enkelt kryptering...
arne_v> Og det er jo ganske rigtigt, at det performer dårligt for store datamængder. Lige præcist i dette tilfælde kunne spørgeren måske bruge det, ved at kryptere med den private nøgle, og lade den offentlige ligge i programmet til at dekryptere med. Så kan data læses men ikke ændres...
3DES eller RC4 er vel de gældende i dag. AES er den ny standard. ECC systemer er lækre med de små nøgler...
Og hvis det datasæt er "rimeligt" hvilket jeg vil definere som: - max. 20 tegn printable i key (key phrase der kan huskes) - min. 50 KB plain text i engelsk eller dansk så er jeg frisk.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.