На досуге написал програмку по шифровке текста, а довести до ума нет времени.
Кому интересно, могу передать программу!Только подскажите как.
|
На досуге написал програмку по шифровке текста, а довести до ума нет времени.
Кому интересно, могу передать программу!Только подскажите как.
Программу можно прикрепить к сообщению и/или залить в файловый архив.
А как? Я на данном форуме "Чайник". Да и вообще.
Не знаю. Я сделал на основе древней машинки, ну где диски с расбросанными буквами алфавита.
Получается так, что замена буквы зависит и от её расположения. Програмка маханькая, но
ежели модернизировать, было бы интересно!
Последний раз редактировалось Gnosis; 06.02.2012 в 09:22.
Наконец-то дошло, как до жирафа(а может просто вспомнил?), что на QB можно сахранить листинг как текст. Вот:
' CODER ver 1.0c.
begin:
CLS
DIM matr(0 TO 8, 0 TO 26) AS STRING
DIM str1 AS STRING: DIM str AS STRING
DIM str2 AS STRING
DIM l AS INTEGER: DIM lst AS INTEGER
DIM x AS INTEGER: DIM y AS INTEGER
DIM y1 AS INTEGER: DIM y2 AS INTEGER
DIM sct AS INTEGER
DIM k AS INTEGER
k = 7
'- dannye dlya zapolneniya matrici
DATA "E","K","C","O","H","T","R","A","V","I","P","W","B","G","Z","L","F","N","Y","M","S","D","X","U","Q","J"
DATA "P","F","U","L","Y","G","C","W","O","K","D","N","Z","M","S","E","Q","J","X","A","V","H","R","B","I","T"
DATA "G","Q","A","E","R","J","O","H","M","V","U","K","C","X","P","I","Z","T","B","W","Y","L","F","S","D","N"
DATA "R","U","H","V","C","S","I","Z","F","T","B","X","N","Q","A","W","Y","G","L","P","D","J","O","M","K","E"
DATA "L","N","F","B","K","Z","U","G","J","D","X","M","S","I","V","O","E","P","T","Q","A","Y","H","W","C","R"
DATA "E","B","I","M","R","O","A","T","P","L","N","D","Q","Y","C","K","X","H","V","J","Z","F","W","G","S","U"
DATA "C","O","Q","X","D","V","S","K","H","Z","E","T","M","U","R","G","L","W","A","Y","P","I","N","J","F","B"
DATA "S","H","G","T","N","F","J","R","Y","B","U","I","X","D","P","W","C","Q","Z","M","E","V","L","O","A","K"
'- matrica(kluch) ''chtenie s data''
'- vse x=0 i y=0 a takze str3 - zarezervirovany
FOR x = 1 TO 8
FOR y = 1 TO 26
READ matr(x, y)
NEXT y
NEXT x
choose:
INPUT "1 - Coder, 2 - Decoder, 3 - Exit..."; sct
IF sct = 3 THEN END
IF sct <> 1 AND sct <> 2 THEN GOTO choose
in:
LINE INPUT "Vvedite stroku..."; str1
IF str1 = "" THEN GOTO mnu
str = UCASE$(str1)
'<<<IF (ASC(str) > 90 OR ASC(str) < 65) AND ASC(str) <> 32 THEN GOTO in>>>
lst = LEN(str)
FOR i = 0 TO lst STEP k + 1
'- vybor simvola iz stroki
FOR x = 1 TO k + 1
str1 = MID$(str, x + i, 1)
IF str1 = "" THEN
i = lst
EXIT FOR
END IF
IF (ASC(str1) > 90 OR ASC(str1) < 65) THEN
str2 = str2 + str1
ELSE
IF sct = 1 THEN GOSUB coder ELSE GOSUB decoder
END IF
NEXT x
NEXT i
CLS
PRINT str
PRINT str2
mnu:
str = "": str2 = ""
GOTO choose
END
coder:
'- srovnenie i zamena simvola
FOR y = 1 TO 26
IF str1 = matr(x, y) THEN
IF y > 26 - k THEN
y1 = y + k: y2 = y1 - 26
ELSE
y2 = y + k
END IF
str2 = str2 + matr(x, y2)
EXIT FOR
END IF
NEXT y
RETURN
decoder:
'- srovnenie i zamena simvola
FOR y = 1 TO 26
IF str1 = matr(x, y) THEN
IF y < k + 1 THEN
y1 = y - k: y2 = y1 + 26
ELSE
y2 = y - k
END IF
str2 = str2 + matr(x, y2)
EXIT FOR
END IF
NEXT y
RETURN
Все переменные x и y равные 0 я зарезервировал для будующего усложнения алгоритма шифрования.
Пока только для латиницы.
« Предыдущая тема | Следующая тема » |
Информация о теме |
Пользователи, просматривающие эту темуЭту тему просматривают: 1 (пользователей: 0 , гостей: 1) |