Seneste forumindlæg
Køb / Salg
 * Uofficiel Black/White liste V3
Login / opret bruger

Forum \ Programmering og webdesign \ Programmering
Denne tråd er over 6 måneder gammel

Er du sikker på, at du har noget relevant at tilføje?

Pseudo-tilfældige tal i C#

Af Monsterbruger Janman | 02-06-2012 18:15 | 1076 visninger | 7 svar, hop til seneste
Hej HOL! Jeg har et lille spørgsmål om Pseudo-tilfældige tal i C#. Jeg laver et program hvor jeg skal bruge mange pseudo-tilfældige tal. Tallene skal være hemmelige, og må på igen måder hænge sammen eller kunne spores. Jeg ville derfor gerne vide hvor "tilfældige" tallene er ud fra denne kode: Random random = new Random(); int a = random.Next(0,255); // generer et tilfældigt tal random = new Random(a); // brug det tal til at "seede" en ny liste // return random.next() Kan man på nogle måder spore ens random-seed?('a' i dette tilfælde) Eller kan man på nogen måder finde en sammenhæng mellem tallene? Hvor sikker er programmet hvis brugeren selv vælger et seed? Kom gerne med forslag til forbedring af koden :)
--
Core 2 Duo E6420 3.29GHz GTS 250 4GB RAM
#1
Beaverman
Monsterbruger
02-06-2012 18:21

Rapporter til Admin
Random i C# er overhovedet ikke random, og hvis du bruger det samme seed vil du ALTID få den samme talrække. Derfor bruger C# fra standard ikke et fast seed, men bruger (efter hvad jeg husker) UNIX time som seed (Tiden i sekunder siden 1. Januar 1970) Da koden altid laver den samme talrække kan man godt finde det originale seed, og derfra udregne hvad kommer næste gang, men med mindre du arbejder for militæret eller på hemmelige koder til et stort firma er der næppe nogen der vil bruge så meget tid på at finde næste tal.
--
#2
Contradel
Junior Nørd
02-06-2012 18:34

Rapporter til Admin
Kan ikke hjælpe konkret, men mht. pseudo tilfældighed vil du altid i princippet kunne spore den originale seed og derved forudse hvad det næste bliver. Spørgsmålet er dog om du kan gøre det indenfor rimelig tid (vi snakker om man har en "uendelighed" til at gøre det i). Den her video forklarer det ret godt. http://youtu.be[...]
--
I am a signature virus, please copy me to your own sig to help me spread.
#3
palle
Gæst
02-06-2012 18:53

Rapporter til Admin
Du kan evt. kigge på TrueCrypt. Dens måde at danne en tilfældig nøgle på kan måske give lidt inspiration.
--
Gæstebruger, opret dit eget login og få din egen signatur.
#4
Janman
Monsterbruger
02-06-2012 19:03

Rapporter til Admin
#1 tak for svaret. Jeg arbejder ikke for militæret. Dette er et personligt projekt, hvor jeg skriver et krypteringsprogram. Jeg regner ikke med at nogle meget hemmelige filer bliver krypteret med denne program, men det ville da være dejligt hvis programmet var sikkert :) . #2 Meget interessant video. I videoen bruger de statisk-TV signal, som jeg desværre ikke kan bruge i programmet. Men tror du der er noget lignende som man kan bruge? Jeg falder også over spørgsmålet: "Findes der noget 100% tilfældigt?". #3 Skal jeg nok gøre, men leder lidt på nettet endnu. Så vidt jeg ved bruger de AES-256bit algoritme, som er meget svær at forstå (for mig), og dermed er deres kode sikkert også meget lang :S.
--
Core 2 Duo E6420 3.29GHz GTS 250 4GB RAM
#5
palle
Gæst
02-06-2012 19:35

Rapporter til Admin
En af TrueCrypts kilder til input er brugerens gøren og laden med musen ved nøgledannelse. Som udgangspunkt giver det nogle rimelige tilfældige tal.
--
Gæstebruger, opret dit eget login og få din egen signatur.
#6
Denno
Semi Supporter
02-06-2012 21:12

Rapporter til Admin
Jeg mener også du kan anvende en kombination af tiden her og nu, temperaturen på din gpu eller cpu, samt din fanspeed. alle tre ting der ændre sig og med den kombination, er det svært at forudsige den næste!
--
#7
Janman
Monsterbruger
02-06-2012 21:34

Rapporter til Admin
#3+5 Har kigget på TrueCrypts dokumentation og kildekoder, og jeg må sige at jeg helst ville undgå at bruge deres algoritmer/metoder. #6 Det har du ret i, det burde være tilfældigt nok! Men jeg er lidt bange for at inden jeg får skrevet et program der med garanti kan finde temperaturen på CPUen, GPUen samt hastigheden på blæserne i computeren, ville der gå et par måneder hvis ikke år :D . Men jeg har tænkt lidt over det, og kom frem til sådan noget med optaget bytes på harddisken. Det burde være tilfældigt nok, ikke? ps. Mens jeg researcher, fandt jeg http://xkcd.com[...] ... Synes den er meget sjov ^^
--
Core 2 Duo E6420 3.29GHz GTS 250 4GB RAM

Opret svar til indlægget: Pseudo-tilfældige tal i C#

Grundet øget spam aktivitet fra gæstebrugere, er det desværre ikke længere muligt, at oprette svar som gæst.

Hvis du ønsker at deltage i debatten, skal du oprette en brugerprofil.

Opret bruger | Login
NYHEDSBREV
Afstemning