Вернуться   CoderX :: Forums > Основные форумы > Курилка
Войти через OpenID

Курилка Флудим и шутим тут!

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 27.03.2009, 18:38   #1
Новичок
 
Регистрация: 17.12.2007
Сообщений: 22
Сказал Спасибо: 7
Имеет 4 спасибок в 4 сообщенях
Aniks
По умолчанию

Красиво реализовано. Я по-другому делал. Ключ(32бита) разбивался на 4 части. Два числа уменьшались на единицу каждые 8 байт и два счетчика увеличивались, когда первые числа были равны 0.

(K=33, биты от 1-32, т.е. Первый бит = K-32, последний К-1)
Код:
1 Число (уменьшается каждые 8 байт):
      Bit [k - 13] 
      Bit [k - 14] 
      Bit [k - 15] 
      Bit [k - 16]
      Bit [k - 1] 
      Bit [k - 2] 
      Bit [k - 3] 
      Bit [k - 4] 
      Bit [k - 5] 
      Bit [k - 6] 
      Bit [k - 7] 
      Bit [k - 8] 

2 Число (уменьшается каждые 8 байт):
      Bit [k - 31] 
      Bit [k - 32] 
      Bit [k - 17] 
      Bit [k - 18]
      Bit [k - 19] 
      Bit [k - 20]
      Bit [k - 21] 
      Bit [k - 22] 
      Bit [k - 23] 

3 Число (увеличивается, когда первое равно 0):
      Bit [k - 32] 
      Bit [k - 17] 
      Bit [k - 18]  
      Bit [k - 19]  
      Bit [k - 20] 
      Bit [k - 21] 
      Bit [k - 22] 
      Bit [k - 23] 
      Bit [k - 24] 
      Bit [k - 9]  
      Bit [k - 10] 
      Bit [k - 11] 
      Bit [k - 12] 

4 Число (увеличивается когда 2-ое равно 0):
      Bit [k - 25] 
      Bit [k - 26] 
      Bit [k - 27] 
      Bit [k - 28] 
      Bit [k - 29] 
      Bit [k - 30] 
      Bit [k - 31]
В С++ можно реализовать с помощью битовых массивов.
Aniks вне форума   Ответить с цитированием
За это сообщение Aniks нажился спасибкой от:
Старый 27.03.2009, 20:40   #2
Admin!
 
Аватар для xkor
 
Регистрация: 04.08.2007
Сообщений: 2,360
Сказал Спасибо: 113
Имеет 1,566 спасибок в 651 сообщенях
xkor на пути к лучшему
По умолчанию

Цитата:
Сообщение от Aniks Посмотреть сообщение
два счетчика увеличивались, когда первые числа были равны 0
я уже плохо помню, но по моему это будет правильно работать только первые несколько десятков или даже сотен килобайт, но потом начнёт появляться расхождение
__________________
Я здесь практически не появляюсь!, Skype - ikskor
xkor вне форума   Ответить с цитированием
Старый 30.03.2009, 16:42   #3
Новичок
 
Регистрация: 17.12.2007
Сообщений: 22
Сказал Спасибо: 7
Имеет 4 спасибок в 4 сообщенях
Aniks
По умолчанию

Цитата:
Сообщение от xkor Посмотреть сообщение
я уже плохо помню, но по моему это будет правильно работать только первые несколько десятков или даже сотен килобайт, но потом начнёт появляться расхождение
ага, так и было. Ток позже, на 1 мБ. Там был критический момент когда оба счетчика в переполнение уходят (т.е. обнуляться должны). Я кстати сравнивал ради интереса после того как ты выложил свою функцию - расхождений нету.

Мне кажется в следующей версии, когда они усложнили шифрацию с динамическим ключом, они там скорее всего принцип оставили тот же: т.е. несколько чисел-счётчиков с произвольными битами.
Aniks вне форума   Ответить с цитированием
Ответ

  CoderX :: Forums > Основные форумы > Курилка



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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 15:34.

vBulletin style designed by MSC Team.
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Locations of visitors to this page
Rambler's Top100

Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!