powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / нужен скрипт авторизации
37 сообщений из 37, показаны все 2 страниц
нужен скрипт авторизации
    #34972523
sanich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть страничка, хочу чтобы доступ к ней был возможен только после ввода логина/пароля.

Желательно без использования БД, можно что нибудь такое с шифрованием, более менее надежное????

Если есть у кого нибудь пример, поделитесь плизззз
...
Рейтинг: 0 / 0
нужен скрипт авторизации
    #34972569
Фотография Green2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
используй https
--

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
нужен скрипт авторизации
    #34973216
sanich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Green2используй https
--

Posted via ActualForum NNTP Server 1.4

поподробней можно?
...
Рейтинг: 0 / 0
нужен скрипт авторизации
    #34975574
Aicg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я полазав по всемирным просторам нашел небольшей скрипт шифрования на ждава и встроил его себе

после чего теперь могу ввести в поле на страницы ключ а по нажатию кнопки им происходит дешифровка страницы и выдача через document.write
С виду кажеться вполне надежным тем более что можно изменить алгоритм шифрования
ифрованные данные храняться в виде array(123,123,123,123,...) который делаеться из исходного кода другой страницей

Если интересует могу дать ссылку на исходный матерьял(которой не мой)
И скинуть код своей страницы

Я изучаю HTML чуть больше недели так что сами решайте насколько мой совет делен...
...
Рейтинг: 0 / 0
нужен скрипт авторизации
    #34979758
sanich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AicgЯ полазав по всемирным просторам нашел небольшей скрипт шифрования на ждава и встроил его себе

после чего теперь могу ввести в поле на страницы ключ а по нажатию кнопки им происходит дешифровка страницы и выдача через document.write
С виду кажеться вполне надежным тем более что можно изменить алгоритм шифрования
ифрованные данные храняться в виде array(123,123,123,123,...) который делаеться из исходного кода другой страницей

Если интересует могу дать ссылку на исходный матерьял(которой не мой)
И скинуть код своей страницы

Я изучаю HTML чуть больше недели так что сами решайте насколько мой совет делен...

А ключь сам где хранится и в каком виде?
Скинь плиз, посмотрю!
...
Рейтинг: 0 / 0
нужен скрипт авторизации
    #34979866
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ключ при такой схеме хранится исключительно в памяти пользователя..
...
Рейтинг: 0 / 0
нужен скрипт авторизации
    #34979878
sanich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а этот array(123,123,123,123,...) мона расшивровать?

Какая вероятность?
...
Рейтинг: 0 / 0
нужен скрипт авторизации
    #34979963
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sanichКакая вероятность?100%. Было бы желание. Время, которое на это потребуется, зависит от длины и сложности пароля и алгоритма.
...
Рейтинг: 0 / 0
нужен скрипт авторизации
    #34981575
Фотография Green2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
https придуман для того чтобы зашифровать передаваемые данные.
Если обычный http можнет перехватить кто угодно и прочитать, то
https передаётся в зашифрованном виде, имеет поддержку в броузерах, используется для финансовых операций.
--

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
нужен скрипт авторизации
    #34983701
Aicg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sanich AicgЯ полазав по всемирным просторам нашел небольшей скрипт шифрования на ждава и встроил его себе

после чего теперь могу ввести в поле на страницы ключ а по нажатию кнопки им происходит дешифровка страницы и выдача через document.write
С виду кажеться вполне надежным тем более что можно изменить алгоритм шифрования
ифрованные данные храняться в виде array(123,123,123,123,...) который делаеться из исходного кода другой страницей

Если интересует могу дать ссылку на исходный матерьял(которой не мой)
И скинуть код своей страницы

Я изучаю HTML чуть больше недели так что сами решайте насколько мой совет делен...

А ключь сам где хранится и в каком виде?
Скинь плиз, посмотрю!
Если мой вариант еще интересует то щас попытытаюсь файл прикрепить но https всё равно лучше если конечно нет ограничений типа сайт на *.narod.ru

Если вайл не прекрепиться с 1го раза сори за кучу сообщений))
...
Рейтинг: 0 / 0
нужен скрипт авторизации
    #34983703
Aicg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
там в архиве страница кодер(не я писал) и декодер по ключу введенному юзером там несколько версий че из них сам разберешся если в html шаришь)
...
Рейтинг: 0 / 0
нужен скрипт авторизации
    #34983743
I_Work
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy sanichКакая вероятность?100%. Было бы желание. Время, которое на это потребуется, зависит от длины и сложности пароля и алгоритма.

Не стоит бросаться такими громкими заявлениями. Тем более неправильными.
...
Рейтинг: 0 / 0
нужен скрипт авторизации
    #34984067
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
I_Work Antonariy sanichКакая вероятность?100%. Было бы желание. Время, которое на это потребуется, зависит от длины и сложности пароля и алгоритма.

Не стоит бросаться такими громкими заявлениями. Тем более неправильными.Не стоит делать тоже самое без аргументации. RSA с 64 битным ключем вскрыли, со 128 вроде бы тоже. А что такого архисложного можно встроить в html, что не вскроется тупым перебором?
...
Рейтинг: 0 / 0
нужен скрипт авторизации
    #34986748
I_Work
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyНе стоит делать тоже самое без аргументации. RSA с 64 битным ключем вскрыли, со 128 вроде бы тоже. А что такого архисложного можно встроить в html, что не вскроется тупым перебором?

Есть такой класс алгоритмов, которые НЕВОЗМОЖНО вскрыть даже полным перебором. Называются они одноразовыми блокнотами. А реализация - самая простая из всех, что может быть.

Пример: буквы исходного текста складываются поочередно с буквами ключа по модулю, равному длине алфавита. Если длина ключа совпадает с длиной исходного текста, то вы НИКОГДА не сможете вскрыть этот текст. Даже за бесконечное время.
...
Рейтинг: 0 / 0
нужен скрипт авторизации
    #34986762
I_Work
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy...RSA с 64 битным ключем вскрыли, со 128 вроде бы тоже...
Более того, разница между симметричными и асимметричными алгоритмами весьма существенная. 64 бита RSA - это просто ерунда даже для простенького домашнего компьютера.
Заявление типа "удалось подобрать 5-символьный пароль для входа в систему администрирования" практически идентичны вашему.
...
Рейтинг: 0 / 0
нужен скрипт авторизации
    #34987101
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Опять разводим сферических коней? Вам охота вводить пароль длиной в весь зашифрованый html? Или хотя бы в половину?
...
Рейтинг: 0 / 0
нужен скрипт авторизации
    #34988412
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может, лучше предоставлять доступ к этой страничке с помощью серверных технологий?
...
Рейтинг: 0 / 0
нужен скрипт авторизации
    #34988653
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я вот не поленился, нашел реализацию ентого блокнота.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
Option Explicit
' One Time Notepad является одним из самых защищённых алгоритмов шифрования. Его правильная дешифровка возможна
' лишь при правильном пароле. Перебор вариантов для взлома равен 256^(длина_ключа), но каждый из них даёт множество различных
' "правильных" расшифровок. Единственно правильная получается лишь при одном ключе!
' Если ещё не верите, то могу привести математические доказательства! В этом исходнике я лишь укажу на самые интересные места.

Private Function OneTimeNotepadEncrypt(ByVal Source As String, ByVal Password As String) As String
    Debug.Print Len(Source), Len(Password)
    On Error Resume Next
    Dim SourceByte() As Byte, PasswordByte() As Byte
    Dim L1 As Long, L2 As Long, I As Long
    SourceByte = StrConv(Source, vbFromUnicode)
    PasswordByte = StrConv(Password, vbFromUnicode)
    L1 = Len(Source) -  1 
    L2 = Len(Password)
    For I =  0  To L1
        SourceByte(I) = CByte(((CLng(SourceByte(I)) + CLng(PasswordByte(I Mod L2))) Mod  256 ))   ' 256 - здесь и кроется секрет
    Next
    OneTimeNotepadEncrypt = StrConv(SourceByte, vbUnicode)
End Function

Private Function OneTimeNotepadDecrypt(ByVal Source As String, ByVal Password As String) As String
    On Error Resume Next
    Dim SourceByte() As Byte, PasswordByte() As Byte
    Dim L1 As Long, L2 As Long, I As Long
    SourceByte = StrConv(Source, vbFromUnicode)
    PasswordByte = StrConv(Password, vbFromUnicode)
    L1 = Len(Source) -  1 
    L2 = Len(Password)
    For I =  0  To L1
        SourceByte(I) = (( 256  + SourceByte(I) - PasswordByte(I Mod L2)) Mod  256 )    ' а вот обратное действие шифрованию
    Next
    OneTimeNotepadDecrypt = StrConv(SourceByte, vbUnicode)
End Function

Private Sub Command1_Click()
    Text1.Text = OneTimeNotepadEncrypt(Text1.Text, "1234567890") ' шифруем текст с паролем 1234567890
End Sub

Private Sub Command2_Click()
    ' Если дешифровать текст с паролем 1234567890, то мы получим наше исходное сообщение
    ' А давайте теперь дешифруем текст с другим паролем!
    Text1.Text = OneTimeNotepadDecrypt(Text1.Text, "1234567890")
    'Text1.Text = OneTimeNotepadDecrypt(Text1.Text, Chr$(54) & Chr$(40) & Chr$(118) & Chr$(51) & Chr$(53) & Chr$(71) & Chr$(229) & Chr$(71) & Chr$(42) & Chr$(53) & Chr$(132)) ' пароль = 6(v35GeG*5"
    ' Надеюсь теперь понятно почему вскрытие метода грубой силой не даст нужно результата (точнее сказать даст очень много нужных результатов)!
End Sub
И что же выясняется? Выясняется, что во-первых метод грубой силы вполне применим, когда известно, что ищем. А ищем текст "<body", куда уж без него в html. Во-вторых, расшифровывать весь текст совсем не обязательно, достаточно например первые 10%, чтобы "<body" в них попало.

В результате имеем три критические слабости - невозможность (неудобство) использования длинного пароля, примерное знание того, что ищем, и необязательность полной расшифровки при брутфорсе. И остались от блокнота клочки да скрепки...
Ах да, еще одна слабость - невозможность использованияв пароле непечатных символов.

I_Work
Полагаю, слив засчитан?
...
Рейтинг: 0 / 0
нужен скрипт авторизации
    #34989854
Aicg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не специалист в шифровании но где-то вроде слышал про алгоритм шифрования сливающий во едино ключ и текс так же как тут только с использованием всех 256 вариантов и в источнике и в ключе + дополнительным шифрованием методом дополнительного добавления энного количества символов полученными чем-то вроде хэша из ключа

минусы:
долгая шифровка(относительно)
для надежности желателен пароль длиною не менее 14 стмволов
плюсы:
вариантов тоже 256*длину ключа
усложнение подбора даже с известным ключем
усложнение подбора в связи с медленной скоростью шифровки в частности из за проблем с определением правильности рассшифровки и долготой(для тех кто шифрует проблем нету так как шифрование не на много дольше чем хэширование через мд5)

передал как помню так как к сожилению не помню где это вычитал
...
Рейтинг: 0 / 0
нужен скрипт авторизации
    #34989856
Aicg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aicgусложнение подбора даже с известным ключем
Что то меня занисло я имел ввиду даже с известной частью кода
...
Рейтинг: 0 / 0
нужен скрипт авторизации
    #34989872
I_Work
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyЯ вот не поленился, нашел реализацию ентого блокнота.

И что же выясняется? Выясняется, что во-первых метод грубой силы вполне применим, когда известно, что ищем. А ищем текст "<body", куда уж без него в html. Во-вторых, расшифровывать весь текст совсем не обязательно, достаточно например первые 10%, чтобы "<body" в них попало.

...

I_Work
Полагаю, слив засчитан?

Вы поищите не какую-то там реализацию а сам принцип работы подобных алгоритмов и вам сразу станет понятным (возможно), что одноразовые блокноты невозможно взломать даже полным перебором за бесконечное время. Гы, тем более, приведенный вами фрагмент кода не является реализацией одноразового блокнота.

Код: plaintext
CLng(PasswordByte(I Mod L2))
- именно небольшой кусочек (I Mod L2) делает из одноразового блокнота простую лажу.

Даже если вам удалось узнать часть ключа, вы ничего, кроме соответствующего куска, не получите.

Нужен пример? Пожалуйста.

Входной алфавит: русские и английские буквы верхнего и нижнего регистра, а также знак пробела. Итого - 33+33+26+26+1=119 символов.
Алгоритм шифрования:
PT - открытый текст длины n
K - ключ длины n
CT - зашифрованный текст длины n

CT_i = K_i+PT_i (mod 119)

Расшифрование: PT_i = CT_i-K_i (mod 119)

Основным моментом здесь является то, что длина ключа не меньше длины сообщения.

При таком простейшем алгоритме вы не сможете получить открытый текст даже перебрав все варианты паролей.

AntonariyВ результате имеем три критические слабости - невозможность (неудобство) использования длинного пароля, примерное знание того, что ищем, и необязательность полной расшифровки при брутфорсе. И остались от блокнота клочки да скрепки...
Ах да, еще одна слабость - невозможность использованияв пароле непечатных символов.

С первой слабостью я абсолютно согласен - неудобство использования и распространение ключей. Это действительно является единственным, но очень серьезным недостатком подобных алгоритмов.

Что значит "примерное знание того, что ищем"? Дело в том, что при любом брутфорсе вы знаете примерный вид того, что ищете. Это ваше утверждение - просто глупость. Иначе вы просто не сможете делать этот самый брутфорс.

Также интересует, что значит "необязательность полной расшифровки"? Ну, вы знаете, что открытый текст начинается, например, с <html><head>. И что дальше. Больше вы ничего и не узнаете.



Вот, зашифровал одноразовым блокнотом короткий текст:
Открытый текст, ключ и, соответственно, закрытый текст содержат только маленькие буквы английского алфавита (всего 26 символов).
Шифровал так, как описал вышел: CT_i = PT_i + K_i (mod 27)
Получил вот, что:
Код: plaintext
fhjrp
Сообщу вам также то, что это английское слово, начинающееся на a.

Ну сможете расшифровать, имея такое большое количество дополнительной инфоромации и такой короткий пароль - всего 5 символов?
...
Рейтинг: 0 / 0
нужен скрипт авторизации
    #34990491
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
I_WorkВы поищите не какую-то там реализацию а сам принцип работы подобных алгоритмов и вам сразу станет понятным (возможно), что одноразовые блокноты невозможно взломать даже полным перебором за бесконечное время. Гы, тем более, приведенный вами фрагмент кода не является реализацией одноразового блокнота.Мне наплевать на принцип. На компьютерах работают реализации, а не принципы. В HTML - конкретные реализации под HTML. Обсуждать сферических коней в вакууме далее я не намерен.
I_WorkЧто значит "примерное знание того, что ищем"? Дело в том, что при любом брутфорсе вы знаете примерный вид того, что ищете. Это ваше утверждение - просто глупость. Иначе вы просто не сможете делать этот самый брутфорс.А то и значит - я абсолютно не знаю что зашифровано допустим в тексте "sdjfeirrkqlmeiyvzxpqwq". Может "Hello world", а может "ГазМяс - чемпион". Что искать-то? В случае с html кусок зашифрованного текста заранее известен.
I_WorkТакже интересует, что значит "необязательность полной расшифровки"? Ну, вы знаете, что открытый текст начинается, например, с <html><head>. И что дальше. Больше вы ничего и не узнаете.Я узнаю правильный ключ. Пример из найденной мной реализации:
текст "Secret text" зашифрован паролем "1234567890", результат - "„—–¦љЄW¬ћЁҐ". Рашифровываем первые 4 символа, получаем " Secr љЄW¬ћЁҐ". То есть экономится туева хуча времени при брутфорсе на том, что без толку рашифровывать ВЕСЬ текст не надо.
I_WorkНу сможете расшифровать, имея такое большое количество дополнительной инфоромации и такой короткий пароль - всего 5 символов?Одна буква из пяти при словаре из 24 букв - слишком мало информации. Слишком короткое сообщение, слишком много левых вариантов. Согласитесь, шанс возникновения текста "<body" среди кучи мусора (mod 256) гораздо ниже, чем одной-единственной буквы среди себе подобных. То есть мы опять перебираемся в царство сферических коней.

Давайте проведем чистый экперимент. Создайте html-файл, зашифрованный блокнотом, я его попытаюсь вскрыть. То есть я на него кликаю, он запрашивает пароль и расшифровывает остальное содержимое.
...
Рейтинг: 0 / 0
нужен скрипт авторизации
    #34990539
Aicg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот собсно говоря тот самый алгоритм который я вычитал в инете

ключ состоит из букв и цифр буквы английские маленькие их 14

этот алгоритм помойму не притендует на супер устойчевость но попробуйте посмотрим что выдет...
...
Рейтинг: 0 / 0
нужен скрипт авторизации
    #34990546
Aicg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot Aicg]Вот собсно говоря тот самый алгоритм который я вычитал в инете[quot]
Всмысле не тот что шифрует по так и сяк и вообще не взломать а тот что я предлогал для скрипта авторизации
...
Рейтинг: 0 / 0
нужен скрипт авторизации
    #34991562
Alex_soldier
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Одноразовый блокнот предполагает возможность двустороннего преобразования текста без проверки корректности конечного результата.
Иными словами, из шифротекста длиной n и можно получить любой текст аналогичной длины. Все упирается в знание единственного правильного ключа (тоже длины n).
К примеру:
ШТ: 1234567890
К1: abcdefABCD
Т1: <html>XaXa
К2: abcdefEFGH
Т2: <html>неуд

Даже имея известные фрагменты в ключе, перебором остальных символов можно получить все возможные варианты исходного сообщения, но даже отбросив бессмысленные, нельзя понять, какое из оставшихся было истинно.
...
Рейтинг: 0 / 0
нужен скрипт авторизации
    #34991960
Aicg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я сейчас пишу на Си++ симетричный шифровальщик с использованием суммы ключа и зависимостью каждого слежуйщего символа от прошлого + сдвигом от той же суммы таким образом подобрать можно будет только весь ключь да и то проблема в том что тот же 14ти значный пароль на обычном компьюторе можно до поснения а если применить по блоковое перешифрование с использованием разных тчастей ключа на основе суммы ключа то установление правильности части с неполным знанием ключа вообщзе исключаеться и того на подбор текста зашифрованного 14ти значным паролем даже супер компьютору пойдет не минута а значит это вполне можно использовать для нормального шифрования

и еще есть вариант использовать для преобразование актив икс компонент тогда взлом буд осложнен еще больше...
...
Рейтинг: 0 / 0
нужен скрипт авторизации
    #34991979
Aicg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да и к томуже представте что будет если шифровать данные несколько(в зависимости от того же ключа) раз тогда с подбором всё будет еще хуже но конечно лучший способ защиты это или длинный пароль или долгая процедура шифровки а еще лучше и то и то



Сори что всё время постю по 2 раза
...
Рейтинг: 0 / 0
нужен скрипт авторизации
    #34992974
I_Work
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyМне наплевать на принцип. На компьютерах работают реализации, а не принципы. В HTML - конкретные реализации под HTML. Обсуждать сферических коней в вакууме далее я не намерен.
Тот код, который вы привели не является реализацией одноразового блокнота. Это то же самое, как если бы вас попросили написать программу деления числа на два, а вы реализовали это в виде alert("Hello, world!"). Поэтому можете и дальше наплевать на принципы.

В силу того, что вы все время ссылаетесь на вашу реализацию "одноразового блокнота", считаю дискуссию бессмысленной. Готов продолжить дискуссию после того, как вы узнаете что такое брутфорс и с чем его едят, а также, что такое одноразовый блокнот.

Может вы хоть Alex_soldier-а послушаете...

Aicg , зачем изобретать велосипед, который к тому же, наверняка окажется крайне слабым шифром, если есть множество проверенных временем алгоритмов - например, тот же ГОСТ 28147-89? Когда допишите вашу программу, не могли бы выслать мне код? :) Хочется ради интереса посмотреть...
...
Рейтинг: 0 / 0
нужен скрипт авторизации
    #34993279
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
I_WorkТот код, который вы привели не является реализацией одноразового блокнота.Приведите правильную.
I_WorkМожет вы хоть Alex_soldier-а послушаете...Пожалуй...
Из его объяснений я понял, что теоретически для текста "хххх" можно подобрать такую пару ключей такой же длины (из словаря в 8 символов), что при расшифровке можно получить как "хлеб" так и "пиво".
...
Рейтинг: 0 / 0
нужен скрипт авторизации
    #34993451
I_Work
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyПриведите правильную.
Уберите из вашей реализации фрагмент
Код: plaintext
Mod L2
, и будем вам реализация одноразового блокнота. При этом длина пароля должна быть не меньше длины шифруемого сообщения (больше тоже смысла нет - часть просто "пропадет").

AntonariyПожалуй...
Из его объяснений я понял, что теоретически для текста "хххх" можно подобрать такую пару ключей такой же длины (из словаря в 8 символов), что при расшифровке можно получить как "хлеб" так и "пиво".

Именно!

Видите ли, когда вы делаете брутфорс, вы так или иначе заранее определяете какие-то критерии правильности пароля. Например - "должен получится читабельный русский текст" или "должна получится запускаемая программа" и т.д. и т.п. Когда вы дешифруете шифртекст очередным паролем, вы проверяете результат на совпадение с вашими критериями: если подходит - пароль правильный, если нет - пароль неправильный. При этом может получиться то, что под ваши критерии попадет не один пароль, а несколько. В этом случае вы должны будете задать более строгий критерий, чтобы отсеить лишние пароли. Если этого сделать невозможно, то вы не узнаете истину, точнее - у вас будет проблема выбора среди множества "подходящих" вариантов.

Вернемся к моему примеру: необходимо дешифровать сообщение fhjrp . При этом известно, что это - английское слово, использовался алфавит, состоящий из маленьких английских букв (всего 26 символов). Таким образом, критерий на правильность пароля - "должно получиться английское слово". После того, как вы переберете все возможные пароли длины 5, состоящий из символов указанного алфавита, у вас получится довольно внушительный список "подходящих" расшифровок - это все английские слова длины 5. Больше вы ничего узнать не сможете в принципе. любой из этих слов могло бы быть исходным сообщением.

В случае, если вам каким-лио образом стала известна часть ключа, вы однозначно сможете восстановить только соответствующую часть сообщения. Все остальное опять-таки будет неопределено. Пример привел Alex_soldier.

P.S. В найденном вами коде реализован так называемый шифр Виженера, который при относительно коротком ключе и длинном шифртексте взламывается крайне быстро, зачастую, даже вручну (если ресь идет об обычном тексте).
...
Рейтинг: 0 / 0
нужен скрипт авторизации
    #34995326
Aicg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну рас уж речь пошла про алгоритмы то хочу заметить несколько особенностей для пожалуй любого шифра

-Пароль длиннее 14ти знаков используется не так часто
-Если алгоритм шифрования хорош то при пароле длиннее текста лишняя часть не пропадает а тоже используется
-Критерии правильности при большом количестве кода вполне эффективны так как при дешифровки нескольких килобайт кода зашифрованных даже 32байтным паролем вероятность правильной дешифровки иных чем исходные данные крайне мала
-Основная защита это длина пароля помноженная на время шифрования и время определения правильности дешифровки
-Дополнительной защитой может служить если алгоритм шифрования ранее неизвестен тогда машинная расшифровка фактически невозможна без участия человека хорошо знакомого с принципами (этот вариант к html коду не применим ввиду открытых исходников)

Что до того что бы скинуть мой алгоритм то кину может сегодня ночью может завтра но сразу хочу сказать что в шифровании я делитатнт так что прошу строго не судить (пишу на борландском Си++ так как предпочитаю подумать над тем как лучше зашифровать а не над тем как это всё навоять на джава скрипт)

И в довершении: я не думаю что текст зашифрованный даже моей программой удастся расшифровать не профессионалу в этом деле так как перебор 14ти значного кода из букв и цифр даже на 1ом языке с учетом поиска соответствия по критерию на обычном компьютере может пойти несколько месяцев если не больше
...
Рейтинг: 0 / 0
нужен скрипт авторизации
    #34995516
Aicg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот и мой алгоритм шифрования точнее исходный код программы реализующий кодировку и декодирование и демонстрирующий результат

Хочу заметить что там используется грубые для более высокоуровневых языков таких как JS преобразования например преобразование 4х байтного числа в 1но байтное с урезанием не попавших бит

И еще если этот алгоритм покажется через чур грубым или простым то прошу заметить что тема шифрования была поднята для меня 1й раз так как до этого я использовал чужие алгоритмы не вдаваясь в изучение принципов

И наконец хочу предложить попробовать всем желающим подобрать ключ к закодированным данным даже если будет известно их начало а потом я с интересом узнаю сколько на это пойдет времени если надо могу выслать экзешник


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
AnsiString _StrToHex(char *str,int len)
{
        AnsiString s="";
        for(int i= 0 ;i<len;i++)
                s=s + IntToHex((unsigned char)(str[i]), 2 ) + ",";
        return s;
};
int _Sum(unsigned char *s,int len)
{
        int n= 0 ;
        for(int i= 0 ;i<len;i++)
                n+=s[i];
        return n;
};
void Encode(unsigned char *t,int tl,unsigned char *o,int ol,unsigned char *k,int kl)
{
        int s=_Sum(k,kl),n=s,n0,ci= 0 ;
        for(int i= 0 ;i<tl;i++)
        {
                n0=(int)(t[i])+(int)(k[ci])+n+s;
                n=t[i];
                o[i]=n0% 256 ;
                if((++ci)>=kl)
                        ci= 0 ;
        };
};
void Decode(unsigned char *t,int tl,unsigned char *o,int ol,unsigned char *k,int kl)
{
        int s=_Sum(k,kl),n=s,n0,ci= 0 ;
        for(int i= 0 ;i<tl;i++)
        {

                o[i]=t[i]-(int)k[ci]-n-s;
                n0=(BYTE)((o[i])+(int)(k[ci])+n+s);
                n=o[i];
                if((++ci)>=kl)
                        ci= 0 ;
        };
};
void __fastcall TForm1::Button1Click(TObject *Sender)
{
        int al=Edit1->Text.Length(),
                bl=RichEdit1->Text.Length(),
                cl=RichEdit1->Text.Length();
        char *a=new char[al+ 1 ];
        char *b=new char[bl+ 1 ];
        char *c=new char[cl+ 1 ];
        StrCopy(a,Edit1->Text.c_str());
        StrCopy(b,RichEdit1->Text.c_str());
        Encode(b,bl,c,cl,a,al);
        c[cl]= 0 ;
        RichEdit3->Text=_StrToHex(c,cl);
        RichEdit2->Text=c;
        ZeroMemory(b,bl);
        Decode(c,cl,b,bl,a,al);
        RichEdit4->Text=b;
        delete a,b,c;
}
//---------------------------------------------------------------------------

...
Рейтинг: 0 / 0
нужен скрипт авторизации
    #34995526
Aicg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да еще хоть эта ветка и не посвящена Си++ но если кто увидит в моем коде что-то не рациональное или неправильное то прошу сказать так как я изучал Си++ исклучительно по его же справке и только недавно у меня появилась MSDN

Еще раз сори модераторам что постю подряд но редактировать сообщения тут нельзя а сразу все сказать не всегда выходит:)
...
Рейтинг: 0 / 0
нужен скрипт авторизации
    #34995631
I_Work
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aicg-Пароль длиннее 14ти знаков используется не так частоСогласен на все 100%.

Aicg-Если алгоритм шифрования хорош то при пароле длиннее текста лишняя часть не пропадает а тоже используетсяЕще раз посмотрите информацию об одноразовых блокнота и вы поймете, что "лишние" символы просто не используются, при этом алгоритм по всем параметрам, кроме длины ключа, превосходит абсолютно все другие алгоритмы: и по простоте реализации, и по скорости шифрования (можно использовать даже на высокоскоростных линиях и шифровать поточно), и по криптостойкости.

Aicg
-Критерии правильности при большом количестве кода вполне эффективны так как при дешифровки нескольких килобайт кода зашифрованных даже 32байтным паролем вероятность правильной дешифровки иных чем исходные данные крайне малаЭто не относится к одноразовым блокнотам . К большинству блочных шифров это действительно подходит: например, критерий - "читабельный русский текст". Тогда, подобрав множество подходящих ключей для первого блока, мы проверяем их для остальных блоков: если и остальные блоки тоже читабельны, то ключ с большой вероятностью можно считать правильным. Если же ключ на первом блоке дает нормальный текст, а на последующих - ерудну, то ключ можно отбросить... Здесь все упирается в то, что фактически ключ используется несколько раз.


Aicg-Основная защита это длина пароля помноженная на время шифрования и время определения правильности дешифровкиНет. Основная защита - сам алгоритм. То, что вы сказали, относится только к полному перебору. Абсолютное большинство алгоритмов для восстановления ключа не нуждаются в полном переборе всех возможных ключей.


Aicg-Дополнительной защитой может служить если алгоритм шифрования ранее неизвестен тогда машинная расшифровка фактически невозможна без участия человека хорошо знакомого с принципами (этот вариант к html коду не применим ввиду открытых исходников)Это само собой разумеется. Однако, можно утверждать, что алгоритм в конце-концов станет известен злоумышленникам за конечное время (обратная инженерия, подсматривание и т.п.). На скрытость самого алгоритма полагаться нельзя.
...
Рейтинг: 0 / 0
нужен скрипт авторизации
    #34995742
Aicg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я не хотел сказать конкретно про одноразовый блокнот а лишь отметить хорошие и плохие стороны заметные с моей точки зрения

и еще на мой взгляд шифрование исключительно символ за символ как в одноразовых блокнотах является совершенно не эффективным в случи стандартного пароля и алгоритм который шифрует блоки одного текста так что бы можно было с 1м паролем расшифровать любую часть текста начав с любого места являются не надежными

к примеру даже мой алгоритм при шифровании соединяет символ пароля символ текста сумму пароля и прошлое добавочное n которое для первого символа является суммой а для последующих не оригинальным символом текста

еще хочу добавить что в коде который я скинул я забыл удалить 1ну строчку в блоке декодирования:)

Код: plaintext
1.
 n0=(BYTE)((o[i])+(int)(k[ci])+n+s);
 
...
Рейтинг: 0 / 0
нужен скрипт авторизации
    #34995752
Aicg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот алгоритм одноразового блокнота написанный мною на основе того что было описано в этой теме и из него следует 1 но очень большей недостаток который уже не раз повторялся а если точнее то он не может служить для шифрования большого количества данных так как пароль длинною даже килобайт это уже абсурд а всучи если текст длиннее пароля в несколько раз то этот алгоритм вообще становиться не эффективным
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
void EncodeOneTimeNotepad(unsigned char *t,int tl,unsigned char *o,int ol,unsigned char *k,int kl)
{
        int ci= 0 ;
        for(int i= 0 ;i<tl;i++)
        {
                o[i]=(t[i]+k[i])% 256 ;
                if((++ci)>=kl)
                        ci= 0 ;
        };
};
...
Рейтинг: 0 / 0
нужен скрипт авторизации
    #34997029
I_Work
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уже давным-давно ушли далеко в сторону от первоначального вопроса.

Уважаемый Aicg, в последних двух ваших сообщениях вы были во многом не правы - например, ваш код - это опять-таки не реализация одноразового блокнота!

Поскольку тема все же довольно интересная, предлагаю обсудить ее не в форуме, а по электронной почте. В дальнейшем, если найдем что-нибудь интересное, напрямую касающееся первоначальной темы, выложим это сюда.

С уважением,
Евгений
...
Рейтинг: 0 / 0
37 сообщений из 37, показаны все 2 страниц
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / нужен скрипт авторизации
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]