Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Where to Store LoginId/Password?
Message
De
01/07/2004 07:48:53
 
 
À
01/07/2004 07:13:55
Information générale
Forum:
Visual FoxPro
Catégorie:
Codage, syntaxe et commandes
Divers
Thread ID:
00919101
Message ID:
00919572
Vues:
7
Hi again, Tracy,

Found the issue!

Just by changing the MessageBox() variables order from:
    Messagebox ("cOrigPass: " + cOrigPass + Chr (13) + ;
                "cObjtPass: " + cObjtPass + Chr (13) + ;
                "cBackPass: " + cBackPass)
to:
    Messagebox ("cOrigPass: " + cOrigPass + Chr (13) + ;
                "cBackPass: " + cBackPass + Chr (13) + ;
                "cObjtPass: " + cObjtPass )
I could see what's happening: some strings generates character sequences that make MessageBox() to end the presentation of the message.

Thanks again!

Regards,

Fernando
>Hi Tracy,
>
>I've been experimenting with those routines you sent me, but there was an issue that I couldn't work around.
>
>In some cases the wordhide() procedure seems to give unexpected results (I might be wrong). Below is a test case I created calling it:
>
>_xldata=.T.
>
>Dimension TabStrings [6]
>
>TabStrings [1] = "MyPassord"
>TabStrings [2] = "This one works"
>TabStrings [3] = "But this one doesn't!"
>TabStrings [4] = "This one works: 0a1b2c"
>TabStrings [5] = "This one doesn't: 00a11b22c"
>TabStrings [6] = "adm003216"                     &&  This is, actually, a valid administrator login
>
>For I = 1 to 6
>
>    cOrigPass = TabStrings [I]
>
>    cObjtPass = wordhide (cOrigPass)
>    cBackPass = wordhide (cObjtPass)
>
>    Messagebox ("cOrigPass: " + cOrigPass + Chr (13) + ;
>                "cObjtPass: " + cObjtPass + Chr (13) + ;
>                "cBackPass: " + cBackPass)
>
>EndFor
>
>*******************************************
>* Psuedo 16bit data encryption algorithm.
>*
>* Useage: <str1>=wordhide(<str2>)
>* Convert back: <str3>=wordhide(<str1>)
>*
>*******************************************
>*
>PROCEDURE wordhide
>PARAMETER xstr
>
>*--03/18/2003 TCH
>IF UPPER(TYPE('_xldata'))=="U"
>   PRIVATE _xldata
>   _xldata=.F.
>ENDIF
>
>PRIVATE i,j,ret,xval,temp
>newstr = xstr
>IF _xldata
>   newstr = ""
>   * Get pairs of characters from the string
>   FOR k = 1 TO LEN(xstr) STEP 2
>      v3=ASC(SUBSTR(xstr,k+1,1)) + ;
>         ASC(SUBSTR(xstr,k,1)) * 256
>
>      * Don't encrypt 2 spaces together.
>      IF v3=8224
>         v4=v3
>      ELSE
>         v4=messybits(v3)
>      ENDIF
>      v1 = 0
>      v2 = 0
>      IF v4 >= 256
>         v1 = INT(v4 / 256)
>         v4 = v4 - (v1 * 256)
>      ENDIF
>      v2 = INT(v4)
>      newstr=newstr+CHR(v1)+CHR(v2)
>   ENDFOR
>ENDIF
>RETURN newstr
>
>*****************************
>PROCEDURE messybits
>   *****************************
>
>   * This routine takes a 16bit number (0 - 65535), converts it to BINARY and
>   * then rearranges the BITS for data encryption.
>
>   PARAMETER dword
>   PRIVATE _i,_j,retval,_xval,temp
>
>   retval = ""
>   FOR _j = 15 TO 0 STEP -1
>      IF dword >= 2^_j
>         retval=retval+"1"
>         dword = dword - 2^_j
>      ELSE
>         retval=retval+"0"
>      ENDIF
>   ENDFOR
>
>   * Move through 16 bits, get every 4th bit and make new binary number
>   temp = ""
>   FOR _i = 1 TO 4
>      FOR _j = 0 TO 3
>         temp = temp + SUBSTR(retval,_i+(_j*4),1)
>      ENDFOR
>   ENDFOR
>
>   retval=temp
>
>   * Convert the BINARY number back to decimal and, just
>   * for fun, flip the BINARY number backwards as we do it.
>
>   _xval=0
>   FOR _j = 1 TO LEN(retval)
>      IF SUBSTR(retval,_j,1) = "1"
>         _xval = _xval + 2^(_j-1)
>      ENDIF
>   ENDFOR
>   RETURN _xval
>
>It's a known issue or am I doing something wrong?
>
>Hope to count on your assistance and patience <s>
>
>Regards,
>
>Fernando
Précédent
Répondre
Fil
Voir

Click here to load this message in the networking platform