mboost-dp1

VBS search'n'replace


Gå til bund
Gravatar #1 - Azuria
5. maj 2009 09:09
Hejsa
Roder lidt med et password script.
Der har jeg behov for at få passwordet ud i clear tekst, og som fonetisk(alfa,bravo, etc)
Jeg prøvede at køre en replace på a=-alfa-, b=-bravo- og så videre.
den giver mig bare et problem.
Fx dua123 giver
-d-ekko-elt-al-foxtrot-a-uniform-al-foxtrot-a

Altså, replacer den også på det fonetiske.
Jeg har forsøgt at google mig frem til at replace via Arrays, men kan ikke finde noget funktionelt.
har arrays ala:

strAlfabet=Array("a","b","c","d","e","f","g","h","i","j","k","l","m","n")
strAlfabetfon=Array("alfa","bravo","charlie","delta","ekko","foxtrot","golf","hotel","india","juliet","kilo","lima","mike","november")


Please help :)
Gravatar #2 - XorpiZ
5. maj 2009 09:24
Nu er jeg ikke superskarp ud i VBScript, men hvad med noget i denne stil:

sæt cleartextPassword = reeltPassword (abc i dette tilfælde)

opdeling af password i enkelt karakterer

indsæt fonetisk navn (alfa, bravo etc.) i korrekt alfabet-array-placering (indsæt alfa i a, bravo i b, osv)

udskriv alfabet-array, i de felter hvor indhold != null.


Rimelig simpel pseudo-kode hehe, men som sagt, så ved jeg stort set intet om VBScript.
Gravatar #3 - arne_v
5. maj 2009 12:08
#1

Lav en løkke som løber strengen igennem, tester på current bogstav og konkatanerer til en resultat streng.
Gravatar #4 - arne_v
5. maj 2009 14:44
strAlfabet = Array("a","b","c","d","e","f","g","h","i","j","k","l","m","n")
strAlfabetfon = Array("alfa","bravo","charlie","delta","ekko","foxtrot","golf","hotel","india","juliet","kilo","lima","mike","november")
inpstr = "dan"
outpstr = ""
For i = 1 to Len(inpstr)
For j = LBound(strAlfabet) to UBound(strAlfabet)
If Mid(inpstr,i,1) = strAlfabet(j) Then
outpstr = outpstr & " " & strAlfabetfon(j)
End If
Next
Next
WScript.Echo outpstr
Gravatar #5 - Azuria
6. maj 2009 04:25
#2 Desværre er mine VBS egenskaber ikke skidegode, copy'n'fix er måden jeg skriver vbs på :$

#4 Takker, du er en skat!
Gravatar #6 - XorpiZ
6. maj 2009 11:39
#5

Kender det, hehe.

Godt arne_v redder dagen (som sædvanlig) :D
Gravatar #7 - arne_v
6. maj 2009 20:23
Hvis man er til mere effektiv men mindre læsbar kode (men hvorfor bruger man så VBS):

strAlfabetfon = Array("alfa","bravo","charlie","delta","ekko","foxtrot","golf","hotel","india","juliet","kilo","lima","mike","november")
inpstr = "dan"
outpstr = ""
For i = 1 to Len(inpstr)
outpstr = outpstr & " " & strAlfabetfon(Asc(Mid(inpstr,i,1)) - Asc("a"))
Next
WScript.Echo outpstr
Gravatar #8 - Emil Melgaard
8. maj 2009 10:40
#7: Hvis du gør det på den måde, bør du så ikke kontrollere at tegnene er mellem a og n?

Eller er VBS ligeglad med om man forsøger at tilgå for høje værdier i en Array?
Gravatar #9 - arne_v
8. maj 2009 13:05
#8

Hvis der er et tegn uden for valid range, så får man en "Subscript out of range".

Men det er ikke nødvendigvis et problem. Koden i #4 er lang værre, fordi den bare ignorerer problemet.
Gravatar #10 - Stewart
11. maj 2009 06:52
#8
Man kunne selvfølgelig også bare tage alle bogstaver med i sit script, så er der ikke det problem mere :)

strAlfabet = Array("a","b","c","d","e","f","g","h","i","j","k","l","m","n", "o","p","q","r","s","t","u","v","w","x","y","z","æ","ø","å")
strAlfabetfon = Array("Alfa","Bravo","Charlie","Delta","Ekko","Foxtrot","Golf","Hotel","India","Juliet","Kilo","Lima","Mike","November", "Oscar", "Papa", "Quebec", "Romeo", "Sierra", "Tango", "Uniform", "Victor", "Whisky", "X-ray", "Yankee", "Zulu", "Ægir", "Ødis", "Åse")
inpstr = inputbox("skriv!")
outpstr = ""
For i = 1 to Len(inpstr)
For j = LBound(strAlfabet) to UBound(strAlfabet)
If Mid(inpstr,i,1) = strAlfabet(j) Then
outpstr = outpstr & " " & strAlfabetfon(j)
End If
Next
Next
WScript.Echo outpstr
Gravatar #11 - Azuria
11. maj 2009 08:32
#10 Det var faktisk også sådan i slut scriptet.
Yderligere er der tilføjet store bogstaver og tal. :)

Det var bare lige til prøve array'et at jeg ikke havde fået smidt alt i.
Gravatar #12 - arne_v
11. maj 2009 18:03
#10 & 11

Der vil så stadig kunne komme en fejl på diverse special tegn. Men hvis den stump kode skal bruges til telefon support hvor passwords er genereret af et andet program, så er antal mulige tegn i input jo begrænset.
Gå til top

Opret dig som bruger i dag

Det er gratis, og du binder dig ikke til noget.

Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.

Opret Bruger Login