Продолжение листинга 18. 4. DIM xdes(1 TO 64) AS shared integer

DIM xdes(1 TO 64) AS shared INTEGER

DIM XT(1 TO 64) AS shared INTEGER

DIM P2(1 TO 64) AS shared INTEGER

main:
CLS
parm$ = ltrim$(rtrim$(COMMAND$))+" "
IF LEN(parm$) > 1 THEN
cipherf$ = LTRIM$(RTRIM$(LEFT$(parm$, INSTR(parm$, " "))))
PRINT "Имя зашифрованного файла: "; cipherf$
ELSE
INPUT "Имя расшифрованного файла: ", cipherf$
END IF
if len(cipherf$)=0 then
print: print "СБОЙ: введите имя файла!"
system
end if
OPEN cipherf$ FOR RANDOM AS 1
lof1& = LOF(1)
IF lof1& = 0 THEN
CLOSE #1
KILL cipherf$
PRINT: PRINT "Файл не найден!";
SYSTEM
ELSE
CLOSE #1
OPEN cipherf$ for binary access read as #1
END IF

PW$ = ""
LOCATE 6, 1
INPUT " Пароль: ", PW$

IF (LEN(PW$) < 8) THEN PW$ = PW$ + STRING$(8 - LEN(PW$), 0)

IF len(pw$) = 16 then

LOCATE 6, 1: PRINT " Пароль: ";
STRING$(16, 15); STRING$(10, " ")

Продолжение листинга 18.4

PW$ = ucase$(PW$)
xtob PW$, P2()
ELSE
LOCATE 6, 1: PRINT " Пароль: ";
STRING$(8, 15); STRING$(10, " ")
PW$ = LEFT$(PW$, 8)
stob PW$, P2()
END IF

PRINT " Проверка пароля: ";
transpose P2(), KeyTr1(), 56
get$ #1,24,cheader$
header$ = desalg$(LEFT$(cheader$, 8))
IF NOT (LEFT$(header$, 3) = "DES") THEN
PRINT "Неверен!": PRINT: PRINT "Неправильный пароль или ";
cipherf$; " не является зашифрованным файлом!"
SYSTEM
ELSE
PRINT "Верен!"
END IF


PRINT " Проверка длины файла:";
header$ = header$ + desalg$(MID$(cheader$, 9, 8))
header$ = header$ + desalg$(RIGHT$(cheader$, 8))
pl% = INSTR(header$, "#")
le$ = MID$(header$, pl% + 1, (11 - pl%))
lf& = VAL(le$)
ev& = lf& + 24
IF (ev& MOD 8) THEN ev& = ev& + 8 - (ev& MOD 8)
rescue% = 0
IF (ev& <> lof1&) THEN
PRINT "Неверна!! (возможна потеря данных)"
PRINT " Длина исходного файла:"; lf&
PRINT " Длина указанного файла:"; lof1&
PRINT " Длина файла должна быть:"; ev&
INPUT; "Попытаться восстановить? (y/n): ", q$:
IF (INSTR(q$, "N") OR (INSTR(q$, "n"))) THEN SYSTEM
rescue% = 4: PRINT
ELSE
PRINT lf&; ", Верна!"
END IF


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: