Gå til innhold

areffhaug

Medlemmer
  • Innlegg

    15
  • Ble med

  • Besøkte siden sist

Innlegg skrevet av areffhaug

  1. Heisann folkens =)

    Har nylig begynt å leke litt med C++ igjen etter en laaang pause, og fant ut at jeg skulle prøve å lage en encrypter.. Føler jeg har kommet frem til et rimelig kjapt og sikkert program, men vil gjerne høre feedback på koden..

    Tror det meste skal være ganske godt kommentert også =)

     

    Binærfil og kildekode ligger på http://sourceforge.net/project/showfiles.php?group_id=219133

     

    På forhånd takk,

    Jon

     

    Enhver algoritme som bruker XOR er usikker, med mindre du genererer en key som er like lang som selve teksten du skal kryptere. Denne keyen må være 100% tilfeldig. Med tilfeldig menes her tilfeldighet i høyere grad enn å bruke f.eks. Cs rand() eller en hvilken som helst annen random-funksjon. De fleste operativsystem har en pseudo random number generator (PSRNG) som generer svært gode, men ikke gode nok, tilfeldigheter for denne typen kryptering. Det ideelle er å kunne lese av diverse svingninger forbundet med radioaktivitet.

     

    Dette er kjent som en One time pad (http://en.wikipedia.org/wiki/One-time_pad), og såfremt keyen er 100% random finnes det ingen måte å knekke det på. Alle løsninger er like sannsynlige, og det er ingen måte å regne seg fram til hvorvidt originalteksten var "negative" eller "bestemor".

     

    Boken "Applied Cryptography" av Bruce Schneier regnes for å være bibelen når det kommer til praktisk kryptografi, jeg anbefaler deg absolutt å ta en titt - haugevis å lære.

     

    Dette er vel mer eller mindre et direkte sitat av hva han skriver om XOR-kryptering (med unntak av en One Time PAD):

     

    Here's how to perform an attack that will break the trivial XOR encryption in a few minutes:

     

    Determine how long the key is

     

    This is done by XORing the encrypted data with itself shifted various numbers of places, and examining how many bytes are the same. If the bytes that are equal are greater than a certain percentage (6% accoridng to Bruce Schneier's Applied Cryptography second edition), then you have shifted the data by a multiple of the keylength. By finding the smallest amount of shifting that results in a large amount of equal bytes, you find the keylength.

     

    Shift the cipher text by the keylength, and XOR against itself.

     

    This removes the key and leaves you with the plaintext XORed with the plaintext shifted the length of the key. There should be enough plaintext to determine the message content.

  2. hmm, nei :(, men se her:

     

    import time

    print "1=circle"

    print "2=square"

    Q1=raw_input("choose figure 1 or 2: ")

     

    her kommer problemet, jeg skal ha enda en fks. raw_input

     

    videre på den over:

     

    if Q1 == "1":

    Q1-r=?("enter radius: ")

    Areal = Q1-r*Q1-r*3,14

    print Areal

     

    osv. men kommer jo ikke videre :S, "sikkert en del feil i den over"

    6533756[/snapback]

     

    http://it.metr.ou.edu/byteofpython/while-statement.html

     

    Det der er en link for deg. Du trenger en loop som går igjen og igjen til den avbrytes på noe vis.

  3. vist jeg skal lage et program med mer enn en input/funksjon, hva gjør jeg da?

     

     

    takk for hjelpen

    6533506[/snapback]

     

    Det kommer an på hva det er du spør om, i grunn.

     

    Vil du ha flere funksjoner som du kjører?

     

    Python har et velkjent grep for å sjekke om den fila du kjører er "hovedfila", ala:

     

    if __name__ == "__main__": 
    
     funksjon1()
     funksjon2()
    

     

    Besvarer dette spørsmålet?

  4. vist jeg skal lage et program der man må velge mellom "yes or no" i, hvordan blir det da?

     

    example = raw_input("blablabla, yes or no?: ")

     

    hvordan blir commanden? :dribble:

     

    og vist jeg skal skrive forskjellige ting på yes og no?

     

    if yes:

    blablabla

    blablabla

     

    if no:

    blablabla

    blablabla

     

    hva blir det da?

     

    mange takk :)

    6521260[/snapback]

     

    if example == "yes":

    do this

     

    if example == "no":

    do that

     

    Og så videre. Har du vurdert å gå til innkjøp av en bok om emnet? Learning Python av Lutz og Ascher er fin, og forklarer alle slike ting og en hel masse mer.

  5. Hei! Jeg har lest litt assembly nå og skal fortsette å lese en god stund til ;)

     

    Men det jeg lurer på nå er... Hvordan skal jeg klare å kjøre programmene som jeg lager i Assembly? Er det ikke noe jeg må laste ned? Jeg har sett at i python er det noe man må laste ned...

     

    Noen som kan forklare meg litt om dette? Hvor kan jeg eventuelt laste ned assembly?

    6515208[/snapback]

     

    Dette er jo litt plattformavhengig, men NASM (http://sourceforge.net/projects/nasm) er kjent som en bunnsolid og god assembler både for Linux og Windows. Det finnes også god dokumentasjon for den. Du laster ikke ned "assembly" - du driver med assembly (som er et språk). Det du laster ned er en assembler - en som "setter sammen" språket til maskinkode. :)

  6. Burde ikke assembly kunne fikse dette da?

     

    Men det er jo litt vanskelig da...

    6514346[/snapback]

     

    Klart det kan fikse det, eller så hadde det jo vært umulig å slå av skjermen for hardwaren. Men høyerenivås språk som Python inkluderer ikke standardmåter å gjøre dette på. Det er det ingen språk som gjør, og assembler er ikke et "språk" i den forstand.

  7. er det en command som kan slå av skjermen din i python :) ? eller ved hjelp av en modul?

    6514232[/snapback]

     

    Kamerat... Det er ingenting i noen programmeringsspråk som gjør noe sånt. Da må du ned på hardwarenivå, og det må gjøres annerledes. Så nei, dette må du antakeligvis løse på samme vis som med shutdown, hvis du har noe program som tar kontakt med hardwaren din og hei og hå.

  8. nei, dette funka ikke :S kan du gi meg et eksempel? jeg tror ikke jeg skjønte det helt :S

     

    et eks. hadde vært greit :)

    6513540[/snapback]

     

    Det som også er veldig greit når man ber om hjelp er å inkludere det man har forsøkt, slik at den som eventuelt hjelper deg har mulighet til å se hva du driver med.

     

    import os

     

    os.system("shutdown -s -t 817 -c 'nå blir din pc slått av innen 1337 sekunder'")

  9. noen som kan en command i python som slår av pc'en din :)? med en command eller ligende :p

     

    la oss ta en eks. som i ms-dos

     

    shutdown -s -t 817 -c "nå blir din pc slått av innen 1337 sekunder"

     

    er dette mulig i python? eller noe lignende?

    (leter også etter en command som slår av pc'en :) )

    6513047[/snapback]

     

    Nei, det er ikke mulig i ren Python. Du kan jo selvfølgelig bruke os.system("shutdown ..."), men det forutsetter at du har privilegier til å gjøre det.

  10. Noen som har tips til noen enkle programmer jeg kan lage i python?

     

    Jeg kommer aldri på noen ideer :S Ikke så enkelt som å regne ut arealet av et rektangel liksom, og det skal ikke bli FOR vanskelig liksom..

    6511253[/snapback]

     

    Jeg har to forslag. Det første er Verdens Beste Program, som går igjennom et katalogtre og bytter ut alle forekomster av mellomrom i filnavn med en underscore (_). Dette er spesielt brukbart på musikkfiler. Det skal fungere på hele kataloger, ala:

     

    program c:\musikk eller program /home/kake/musikk

    --> renaming "Fest i stua - Kjempelåten.mp3" to "Fest_i_stua_-_Kjempelåten.mp3"

     

     

    Helst skal det også ta imot et argument på kommandolinja, slik at du kan bestemme hvilket tegn den bytter ut mellomrom med. Default skal være _.

     

    Eller, lag et lite intelligent program som tar backup av en liste med kataloger du gir den, og plasserer dem i en backupkatalog, i kataloger basert på dagens dato.

     

    Python har innebygde moduler for både zip og tar, de egner seg godt til dette formålet. Programmet bør helst kunne ta imot ekstra kataloger på kommandolinja. I begynnelsen kan jo listen over kataloger den skal backe opp være en helt vanlig pythonliste, men etterhvert kan du jo utvide det til å laste inn en "config" fil hvor mappene og eventuelle andre options befinner seg.

  11. Jeg prøver å finne noe som lar meg skrive kode i konkurranse med andre. Jeg har tidligere testet Terrarium, men det virker som om dette er lagt ned?

    Finnes det noen andre miljøer som lar en konkurrere med koden sin? Det trenger ikke minne om Terrarium.

    6306830[/snapback]

     

    Å google "programming contest" trekker frem endel aktuelle og morsomme saker. Vet ikke om så mange av dem tar imot C# kode, dog.

  12. Synes du jeg skal begynne med C også? :dontgetit:

    6507852[/snapback]

     

    Nei, begynn nå endelig ikke med C. Det er veldig liten grunn til å tro at du har bruk for C. I C er alt et slitsomt stykke herk, du må ta deg av minnehåndteringen selv, og standard libbet er mer eller mindre ubrukelig til stort annet enn å bygge de funksjonene du trenger fra scratch.

     

    Hold deg til Python, du. Det er et pent og rent språk som passer flott for nybegynnere, med masse libs og lett tilgjengelighet.

  13.  

    Jeg anbefaler at du lærer deg C, fremfor C++, hvis alt du skal er å konvertere dette underlige keygen-programmet ditt. Det er forøvrig gjort i løpet av et par dager å lære seg det du trenger.

     

    En tur til www.c-faq.com gjør mye godt.

    6506772[/snapback]

    For noen tar det bare et par dager, for chipman tar det nok lengre tid(starter på et par overambisiøse prosjekter så fort han har lært seg å bruke variabler)

    6506895[/snapback]

     

    Ikke noe galt i litt ambisjon :)

     

    Det man jo gjerne reagerer på er "jeg skal bare lære meg akkurat nok til å klare akkurat dette, kan noen fortelle meg hva jeg skal gjøre". Det er sjelden man kommer noen vei i programmeringens verden på det viset.

  14. hvordan lager jeg en exe fil igjennom py2exe... JEG ER HELT noob så plz svar lett, ellers forstår jeg ingenting :p

     

    hva mer enn dette :p?

     

    import py2exe

    6498190[/snapback]

     

    Det du gjør er at du lærer deg et språk som kompileres (og da snakker vi ikke bytecompiling). Eventuelt gir du opp tanken på at du skal ha hemmelig kode som er fantastisk og skjult inni en .exe-fil. Alle som noensinne har plukket opp et scriptspråk har tenkt tanken, og de fleste har heldigvis lagt den fra seg igjen.

     

    Det er mye flott som kan sies om scriptspråk. En av de tingene er at de ikke kompileres til ugjenkjennelig rall, men er åpne for alle som vil endre, lære og bidra.

×
×
  • Opprett ny...