home *** CD-ROM | disk | FTP | other *** search
- **************************************************************************
- * Name........: PASSEDIT.PRG *
- * Purpose.....: Change password. *
- * Date........: 11/03/92 *
- * By..........: Frederico Terenas E-mail: cs_a264@Kingston.ac.uk *
- **************************************************************************
-
- PROCEDURE PASSEDIT
-
- * To change the password, you must know the current password
-
- PRIVATE ALL
-
- ENC_FACTOR = 1200
-
- SET SAFETY OFF
-
- RESTORE FROM CHAVE ADDITIVE && restores current password
-
- DEFINE WINDOW GET_PWD FROM 8,22 TO 14,55 DOUBLE COLOR ,,GR+/G
-
- ACTIVATE WINDOW GET_PWD
-
- @ 0,8 SAY "Change Password"
- @ 1,0 SAY REPL(CHR(196) ,32)
-
- SET COLOR OF FIELDS TO RB/RB && bg color = fg color
-
- curr = SPACE(10)
- @ 2,2 SAY "Your password:"
- @ 2,20 GET curr PICTURE "XXXXXXXXXX"
- READ
- OK = .T.
- currlen = LEN(RTRIM(curr))
-
- IF Length1 <> currlen && Length1 from file
- OK = .F.
- ELSE
- Counter = 1
- DO WHILE (Counter <= Length1) .AND. OK
- IF ASC(SUBSTR(CURR,Counter,1)) + ENC_FACTOR <> (Password[Counter])
- OK = .F.
- ELSE
- Counter = Counter + 1
- ENDIF
- ENDDO
- ENDIF
-
-
- IF OK
-
- DECLARE Password[10]
- Pass = SPACE(10)
- Length1 = 0
- Counter = 1
-
- @ 3,2 SAY "New password:"
- @ 3,20 GET Pass PICTURE "XXXXXXXXXX"
- READ
-
- Length1 = LEN(RTRIM(Pass))
-
- DO WHILE Counter <= Length1
- Password[Counter] = ASC(SUBSTR(Pass,Counter,1)) + ENC_FACTOR
- Counter = Counter + 1
- ENDDO
-
- Length2 = 0
-
- PASS = SPACE(10)
-
- Counter = 1
- OK = .T.
-
- @ 4,2 SAY "Again:"
- @ 4,20 GET Pass PICTURE "XXXXXXXXXX"
- READ
-
-
- DEACTIVATE WINDOW GET_PWD
-
- Length2 = LEN(RTRIM(Pass))
-
- IF Length1 <> Length2
- OK = .F.
- ELSE
- DO WHILE (Counter <= Length1) .AND. OK
- IF ASC(SUBSTR(Pass,Counter,1)) + ENC_FACTOR <> (Password[Counter])
- OK = .F.
- ELSE
- Counter = Counter + 1
- ENDIF
- ENDDO
- ENDIF
-
- SET CURSOR OFF
-
- IF OK
-
- IF Length1 = 0
- PASSWORD[1] = 0
- ENDIF
-
- SAVE TO CHAVE ALL EXCEPT PASS
- @ 16,29 TO 18,49 DOUBLE COLOR G/B
- @ 17,31 SAY "Password changed!"
- Espere = INKEY(3)
- ELSE
- @ 16,30 TO 19,49 DOUBLE COLOR R/B
- @ 17,32 SAY "Invalid password"
- @ 18,34 SAY "NOT CHANGED! "
- Espere = INKEY(3)
- ENDIF
- RELEASE ALL && restore memory
- SET CURSOR ON
- ELSE
- @ 3,8 SAY "WRONG PASSWORD"
- A = INKEY(2)
- DEACTIVATE WINDOW GET_PWD
- RETURN
- ENDIF
-
-
- RETURN && from PASSEDIT