Важная информация
Показано с 1 по 6 из 6

Тема: Криптография на QB

  1. #1 Криптография на QB 
    Новичок
    Регистрация
    16.12.2011
    Адрес
    Калининград
    Сообщений
    24
    Сказал(а) спасибо
    4
    Поблагодарили 1 раз в 1 сообщении
    На досуге написал програмку по шифровке текста, а довести до ума нет времени.
    Кому интересно, могу передать программу!Только подскажите как.
    Ответить с цитированием  
     

  2. #2  
    Новичок Аватар для profAleks
    Регистрация
    31.12.2011
    Сообщений
    11
    Сказал(а) спасибо
    0
    Поблагодарили 2 раз(а) в 1 сообщении
    Публикуй исходники под лицензией BSD или GNU General Public License, народ доведет до ума.
    P.S. Шифрование симметричное или ассиметричное ?
    [Ссылки могут видеть только зарегистрированные пользователи. ]
    [Ссылки могут видеть только зарегистрированные пользователи. ]
    Ответить с цитированием  
     

  3. #3  
    Гуру Аватар для Konstantin Shcherba
    Регистрация
    08.11.2010
    Сообщений
    1,336
    Сказал(а) спасибо
    26
    Поблагодарили 139 раз(а) в 107 сообщениях
    Записей в блоге
    1
    Программу можно прикрепить к сообщению и/или залить в файловый архив.
    Ответить с цитированием  
     

  4. #4  
    Новичок
    Регистрация
    16.12.2011
    Адрес
    Калининград
    Сообщений
    24
    Сказал(а) спасибо
    4
    Поблагодарили 1 раз в 1 сообщении
    А как? Я на данном форуме "Чайник". Да и вообще.
    Ответить с цитированием  
     

  5. #5  
    Новичок
    Регистрация
    16.12.2011
    Адрес
    Калининград
    Сообщений
    24
    Сказал(а) спасибо
    4
    Поблагодарили 1 раз в 1 сообщении
    Не знаю. Я сделал на основе древней машинки, ну где диски с расбросанными буквами алфавита.
    Получается так, что замена буквы зависит и от её расположения. Програмка маханькая, но
    ежели модернизировать, было бы интересно!
    Последний раз редактировалось Gnosis; 06.02.2012 в 09:22.
    Ответить с цитированием  
     

  6. #6  
    Новичок
    Регистрация
    16.12.2011
    Адрес
    Калининград
    Сообщений
    24
    Сказал(а) спасибо
    4
    Поблагодарили 1 раз в 1 сообщении
    Наконец-то дошло, как до жирафа(а может просто вспомнил?), что на 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)

Ваши права
  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •