Методы и средства защиты информации



              

Механизм действия S-блоков - часть 10


   

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

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

pl% = INSTR(12, header$, "#")

oldplainf$ = RIGHT$(header$, 24 - pl%)

PRINT "        Имя исходного файла : "; oldplainf$;

OPEN oldplainf$ FOR RANDOM AS 2

IF INSTR(oldplainf$, ".") THEN

 

PRINT " ([*.*] ";

ELSE

 

PRINT " ([*] ";

END IF

IF LOF(2) > 0 THEN PRINT "уже есть в каталоге";

PRINT ")"

CLOSE #2

plainf$ = ""

INPUT "        Имя выходного файла : ", plainf$

IF plainf$ = "" THEN plainf$ = oldplainf$

plainf$ = RTRIM$(LTRIM$(plainf$))



Содержание  Назад  Вперед