Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 | 2 |

 

  Вопрос: Помогите с текстовым редактором!!! (часть 3) =) Добавлено: 15.02.08 13:17  

Автор вопроса:  Harter
Я зделал очень простой кодер-декоодер...
Но он работает просто ужасно!!!

Вот код:

Option Explicit
'На форме расположенно text,label,label :(

Private Function coder(s As String) As String
Dim i As Integer
Dim b As String
Dim n As String
Dim t As String
Rnd (-5)
    For i = 1 To Len(s)
        b = Mid$(s, i, 1)
        n = Asc(b)
        n = n Xor Int(Rnd * 256)
        b = Chr$(n)
        t = t + b
    Next i
        coder = t
End Function
Private Sub Command1_Click()
'Кодируем
Dim s As String
        s = Text1.Text
    Label1.Caption = coder(s)
        s = coder(s)
Open "proba" For Binary As #1
    Put #1, 1, s
Close #1

End Sub

Private Sub Command2_Click()
'Декодируем
Dim s As String
Dim i As Integer
Dim myarray() As Byte
Dim d As Integer
Open "proba" For Binary As #1
        d = LOF(1)
ReDim myarray(d)
For i = 1 To d
Get #1, i, myarray(i)
        s = s + Chr$(myarray(i))
Next i
Close #1
    Label2.Caption = coder(s)
End Sub

Ответить

  Ответы Всего ответов: 17  

Номер ответа: 1
Автор ответа:
 VβÐUηìt



Вопросов: 246
Ответов: 3333
 Web-сайт: смекаешь.рф
 Профиль | | #1
Добавлено: 15.02.08 13:40
Либо я тупой, либо как n = n Xor Int(Rnd * 256) можно вообще раскодировать?!

Ответить

Номер ответа: 2
Автор ответа:
 Harter



Вопросов: 32
Ответов: 167
 Профиль | | #2 Добавлено: 15.02.08 13:46
Не обижайся, но прога работает =)
Вот сам попробуй!

Ответить

Номер ответа: 3
Автор ответа:
 Bonapart



ICQ: 175256 

Вопросов: 32
Ответов: 108
 Web-сайт: team16.tut.su
 Профиль | | #3
Добавлено: 15.02.08 15:16
n = n Xor Int(Rnd * 256)
нельзя раскодировать в принципе.
то что она у тебя работает показывает что в VB алгорит случайных чисел ещё включать надо...
функцией randomize например

Ответить

Номер ответа: 4
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #4 Добавлено: 15.02.08 17:38
По сути раскодировать можно без особых проблем, достаточно знать на какой позиции был генератор случайных чисел до начала "шифрования".

Хотя по сути данный код шифрованием не является - зная "магические числа" генератора и тип данных, можно определить возможные начальные значения генератора.

Ответить

Номер ответа: 5
Автор ответа:
 VβÐUηìt



Вопросов: 246
Ответов: 3333
 Web-сайт: смекаешь.рф
 Профиль | | #5
Добавлено: 15.02.08 18:47
Вместо Rnd лушче подставь, например, i mod 256. А если уж совсем невтерпежь, генерируй rnd вначале цикла один раз, затем кодируй с ним и закидывай это же число в файл, что бы можно было расшифровать.

Ответить

Номер ответа: 6
Автор ответа:
 Winand



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #6
Добавлено: 15.02.08 23:41
Кстати, функция "Grab korovan" будет реализована? =))

Ответить

Номер ответа: 7
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #7 Добавлено: 16.02.08 03:35
Вместо Rnd лушче подставь, например, i mod 256. А если уж совсем невтерпежь, генерируй rnd вначале цикла один раз, затем кодируй с ним и закидывай это же число в файл, что бы можно было расшифровать.

это не имеет ни какого отношения к шифрованию

http://en.wikipedia.org/wiki/Cryptography
http://en.wikipedia.org/wiki/Advanced_Encryption_Standard

Ответить

Номер ответа: 8
Автор ответа:
 Winand



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #8
Добавлено: 16.02.08 04:28
Про шифрование автор ничего не спрашивал.

Ответить

Номер ответа: 9
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #9 Добавлено: 16.02.08 04:58
По сути автор вообще ничего не спрашивал :)

Ответить

Номер ответа: 10
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #10 Добавлено: 16.02.08 05:37
достаточно знать на какой позиции был генератор случайных
Я думаю не всегда, при одинаковой позиции, генератор будет выдавать всегда одинаковые случайные числа. Хотя в на вб и других языках, работающих в рамках виртуальной машины - возможно всегда. Ну например написав генератор, который генерирует API функциями, возможно, на разных ОС и других звёздных зависимостях, числа могут получиться разные при одинаковом начале :)

Ответить

Номер ответа: 11
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #11 Добавлено: 16.02.08 05:59
Функция RND из VB6 всегда будет выдавать одинаковую последовательность.

Ответить

Номер ответа: 12
Автор ответа:
 Winand



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #12
Добавлено: 16.02.08 17:19
Ну раз уж на то пошло, объясните, что за параметр есть у функции Randomize? зачем он?

Ответить

Номер ответа: 13
Автор ответа:
 Harter



Вопросов: 32
Ответов: 167
 Профиль | | #13 Добавлено: 16.02.08 17:22
Я лино не сильно представляю RND без RANDOMIZE TIMER в Form Foad'е...
Точно сказать не могу, но когда я делал первую программу (генератор случайных чисел), я использовал этот элемент...

Ответить

Номер ответа: 14
Автор ответа:
 Harter



Вопросов: 32
Ответов: 167
 Профиль | | #14 Добавлено: 16.02.08 17:22
Я лино не сильно представляю RND без RANDOMIZE TIMER в Form Foad'е...
Точно сказать не могу, но когда я делал первую программу (генератор случайных чисел), я использовал этот элемент...

Ответить

Номер ответа: 15
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #15 Добавлено: 16.02.08 18:25
Randomize Statement

Initializes the random-number generator.

Syntax

Randomize [number]

The optional number argument is a Variant or any valid numeric expression.

Remarks

Randomize uses number to initialize the Rnd function's random-number generator, giving it a new seed value. If you omit number, the value returned by the system timer is used as the new seed value.

If Randomize is not used, the Rnd function (with no arguments) uses the same number as a seed the first time it is called, and thereafter uses the last generated number as a seed value.


   Note
To repeat sequences of random numbers, call Rnd with a negative argument immediately before using Randomize with a numeric argument. Using Randomize with the same value for number does not repeat the previous sequence.

По сути ясно что разницы между RANDOMIZE TIMER и Randomize нет, так как если аргумент не указан то используется значение таймера.

Остальное написнао довольно туманно, особенно про отрицательные числа.

Единственное что удалось определить - последовательные вызовы Randomize 0 дают одинаковые знчения функции Rnd, любое число отличное от 0 уже уводит генератор.

Ответить

Страница: 1 | 2 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам