08. maj 2002 - 21:19Der er
6 kommentarer og 1 løsning
Problem med tilfældighed
Jeg har nu længe siddet med dette script, som ikke virker helt efter hensigten. Formålet med scriptet er at det laver et tilfældigt ord, som dog kan udtales. Meningen er at det skal lave et ord på mellem 5 og 10 tegn, men netop den del kan jeg ikke få til at virke.
Jeg har også scriptet i en PHP udgave, med præcist samme problem, så det er lidt irriterende... Nogen der kan se hvad jeg gør galt? (Beklager hvis koden ser lidt rodet ud :)
function wordgen() {
var runwhile = Math.floor(Math.random() * 10) + 1 ;
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
code_master >> Det er heller ikke meningen at den skal lave forståelige ord :) Meningen er at den genererer et tilfældigt ord, som kan udtales, men ikke nødvendigvis betyder noget... Altså generelt bare at der ikke må være 2 konsonanter/vokaler lige efter hinanden :)
du skal ikke lægge en til her: var currentchar = Math.floor(Math.random() * antal); dels får du aldrig noggen 'a'er, desl vil tallet nogen gange blive lig med alpha.length, dvs pege på den ikke eksisterende celle efter den sidst i dit array.
eftersom de konsonanter der står i det genererede password blot er 'tæl nedad fra vokalen' hjælper de slet ikke på at gøre det password srærere at knække, såsnart man kender systemet behøver man blot gætte vokaler (og dem er der ikke mange af).
her tæller du en udover enden af dit array: for(a = 0 ; a <= vokal.length ; a++) { brug a < vokal.length istedet.
ville det ikke være meget nemmere skiftevis at lave en konsonant og en vokal udaf de to arrays der netop indeholder konsonanter og vokaler:
function wordgen() {
var runwhile = Math.floor(Math.random() * 6) + 5 ; mindst 5+0, max 5+5 var vokal = new Array("a", "e", "i", "o", "u", "y") ; var konsonant = new Array("b", "c", "d", "f", "g", "h", "j", "k", "l", "m", "n", "p", "q", "r", "s", "t", "v", "w", "x", "z") ;
var result = "" ;
for(i = 0 ; i < runwhile ; i++) {
if ( i%2 == 0 ) { // i er et lige tal result += konsonant[ Math.floor( Math.random() * konsonant.length ) ]; } else { result += vokal[ Math.floor( Math.random() * vokal.length ) ]; } }
JakobA > Takker mange gange, det hjalp i hvert fald :) Selvfølgelig er det ikke svært at knække en kode som denne, den indeholder trods alt kun bogstaver... Men meningen er ikke så meget at generere kodeord, selvom det selvfølgelig er en oplagt anvendelse for scriptet... Det var mere et projekt jeg lavede for at have noget at lave (Og øve mig lidt i JavaScript), og siden har det vist sig at være ydert brugbart hvis man keder sig og har brug for et "godt" grin, det er trods alt nogle spøjse ord den kommer med :) (JAJA, man har vel lov at være underlig :)
Lige den situation har jeg faktisk været i selv. Det er virkelig nogen spøjse ord man kan få ud af det. Det er muligt di er underlig, men du er ikke den eneste :-))
Det er virkelig rart at vide man ikke er alene om det :) Men nogen skal jo være underlige, hvis ikke der var det, havde vi et ord mindre i det danske sprog :)
Selv tak :)
Synes godt om
Ny brugerNybegynder
Din løsning...
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.