Avatar billede skarvenneverdies Nybegynder
01. juli 2011 - 23:33 Der er 9 kommentarer og
1 løsning

Genrere passwords i en kolonne

Hej

Jeg er totalt noob i Excel.

Jeg har en liste med 3100 rækker med data over nogle brugere.

Der tilføjes jævnligt nye brugere i listen.

Hvordan lave jeg en funktion der genererer et password til hver bruger f.eks i kolonne N

Der må ikke være 2 ens passwords og hvert password skal være rimeligt sikkert f.eks 8 karakterer, indeholdende bogstaver og tal - men ingen tegn.

På forhånd tak...
Avatar billede natkatten Mester
02. juli 2011 - 08:00 #1
Dette kan gøres på mange måder. Her er en formelbaseret variation, idet jeg i nedenstående baserer mig på dansk Excel 2007/2010.

Kopierer denne formel til den første celle i det område, hvor passwordene skal genereres:

=TEGN(SLUMPMELLEM(65;90))&TEGN(SLUMPMELLEM(48;57))&TEGN(SLUMPMELLEM(97;122))&TEGN(SLUMPMELLEM(97;122))&TEGN(SLUMPMELLEM(65;90))&TEGN(SLUMPMELLEM(65;90))&TEGN(SLUMPMELLEM(97;122))&TEGN(SLUMPMELLEM(48;57))

Formelen genererer passwords med 8 tegn ud fra de respektive værdier i ISO 8859-1 tegnsættes. Andre kombinationer kan naturligvis vælges, men til dit formål er dette jo ligegyldigt.

Kopierer denne formel ned i den kolonne, som skal anvendes.

Lav en brugerdefineret datavalidering i det område, hvor passwordene står. Markerer hele området, og indsæt denne formel:

=TÆL.HVIS($N$1:$N$1000;N1)=1

Dette sikrer, at der kun er unikke passwords i listen.

Har lagt et eksempel på GUPL:

http://gupl.dk/62278/
Avatar billede skarvenneverdies Nybegynder
02. juli 2011 - 16:04 #2
Hej Natkat

Tak for dit hurtige svar

Jeg kan sagtens bruge dit forslag, jeg tænker bare på en ting:

Hvad gør jeg når der kommer nye brugere i listen? - ligesom hvis jeg skriver noget i linie 1002 i din excel fil? - og er jeg sikker på at de første genererede passwords altid forbliver de samme?
Avatar billede natkatten Mester
02. juli 2011 - 16:31 #3
Til dine spørgsmål:

Ja, området kan udvides, så længe at formelen i datavalideringen kopieres med. Det er denne, som sørger for, at de 8 karakterer forbliver unikke.

Løsningen genererer engangs-passwords, som ikke er møntet på at blive gemt, idet der som udgangspunkt vil blive foretaget genberegninger (og dermed blive genereret nye passwords), ved f.eks. åbning af regnearket. Denne automatik kan slås fra (manuelt eller via VBA), men uden at det skal blive en lang diskussion om sikkerhed, så er det vel under alle omstændigheder en dårlig idé at gemme passwords i en klartekstfil (i Excel eller i et andet program).

Hvis det alligevel skal ske, så bør du nok kigge dig om efter en anden løsning. Excel er fint egnet til at lave genereringen, men er knap så egnet til at opbevare en sådan liste. Også selv om man manuelt eller automatisk via VBA sætter password på filen. Det er ret let at låse op for denne beskyttelse - der findes flere programmer på Internettet, som kan gøre dette.

Mvh Natkatten
Avatar billede finb Ekspert
03. juli 2011 - 09:54 #4
Slump-formlen er ok, men teoretisk kan den generere passwords som "aaaaaaaa" eller "33333333".

Skal formlen tage højde for den slags ?

mvh finb
Avatar billede natkatten Mester
03. juli 2011 - 10:05 #5
Nej, den kan ikke generere passwords som disse! Kig nærmere på formelen, og du vil se, at den genererer de otte karakterer ud fra dette princip:

Stort bogstav - tal - lille bogstav - lille bogstav - stort bogstav - stort bogstav - lille bogstav - tal

Som f.eks. Z6xqUHv4

Dette kan ret let randomiseres.

Med hensyn til at gemme listen (imod min anbefaling hvis den skal bruges i "det virkelige liv"), så kan man efter genereringen markere og kopiere området (eller hele arket) og derefter sætte det ind som tekst. Så forsvinder formlerne og der laves ikke genberegninger.
Avatar billede natkatten Mester
03. juli 2011 - 10:40 #6
En anden løsning, hvor der ikke er "systematik" i valget af om det skal være hhv. et stort bogstav, et lille bogstav eller et tal er at lave et indeks. Alle de tegn, som kan vælges placeres i et celleområde, f.eks. som i eksemplet her A2:A63. Så laves følgende tilfældige opslag:

=INDEKS($A$2:$A$63;SLUMPMELLEM(1;62))

Dette giver ét tegn. Hvis der skal være 8 uden mellemrum eller andre skilletegn, så skal der blot tilføjes:

&INDEKS($A$2:$A$63;SLUMPMELLEM(1;62))

7 gange
Avatar billede natkatten Mester
03. juli 2011 - 10:46 #7
Tilføjelse: For at undgå at skrive tegnene ind selv, så kan man f.eks. anvende denne syntaks:

=TEGN((RÆKKE()+46))

Hvis denne formel står i f.eks. A2, så fås et 0. Denne kan så kopieres ned så den omfatter tallene 0-9. I celle A12 kan så skrives:

=TEGN((RÆKKE()+53))

Denne kopieres ned til A37, og så er de store bogstaver med som valgmulighed. I række A38 skrives:

=TEGN((RÆKKE()+59))

som så kopieres ned til A63 hvorefter de små bogstaver er med.
Avatar billede natkatten Mester
03. juli 2011 - 12:22 #8
Denne lille "tilfældighedsgenerator" kan jo bruges i mange sammenhænge:

http://gupl.dk/62327/

;-)
Avatar billede skarvenneverdies Nybegynder
31. juli 2011 - 18:33 #9
Tak for hjælpen Natkat - smid et svar...
Avatar billede natkatten Mester
31. juli 2011 - 19:06 #10
Her er så svaret.

Mvh Natkatten
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester