| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Общие вопросы по .NET и C# > Время между кликами |
| Автор: PsiMagistr 3.5.2020, 12:32 |
| Ребята, Как правильно рассчитать время между кликами мыши в миллисекундах в C#? Если набегают секунды, они должны переводиться в миллисекунды. |
| Автор: THandle 4.5.2020, 01:06 | ||
| Привет. Ну смотри, у тебя есть какая-то переменная, допустим previousDate типа DateTime, в ней ты хранишь время предыдущего клика. Тогда в обработчике клика можно написать что-то вроде:
Соответственно разница у тебя будет храниться в переменной difference типа TimeSpan. Чтобы выразить эту разницу в миллисекундах, тебе нужно свойство difference.TotalMilliseconds. Думаю, как-то так) |
| Автор: PsiMagistr 4.5.2020, 08:47 | ||||||
Спасибо большое за помощь! При попытке вывести это тотальные миллисекунды в строку получаю нечто вроде: 544,2344. Как мне это трактовать? Он до деститысячных миллисекунды считает? Вот это точность. Вот код. flag - это просто булевское свойство.
|
| Автор: PsiMagistr 4.5.2020, 15:51 | ||||
Аха, спасибо большое. Пишу одноразовый шифроблокнот. Для генерации ключей понадобились случайные числа. Не какие-нибудь псевдослучайные, а истинно случайные. Что делать? Раскопал RNGCryptoServiceProvider и создал с его помощью генератор криптографически случайных. Этого показалось мало, сделал ручной кликабельный генератор - фиксируются координаты клика мыши, время между двумя кликами и на основе группы кликов создаются разный начальный seed для псевдогенератора Random. Каждый новый щелчок - новый seed, новая группа чисел. Пойдет такое? Продолжаем извлекать хаос из детерминированного источника... ))) |
| Автор: THandle 4.5.2020, 17:48 |
| Честно говоря, мне кажется, это какой-то довольно странный способ генерации случайных чисел) На мой взгляд того же RNGCryptoServiceProvider вполне хватило бы) Или это просто желание попробовать разные ручные варианты? Ну все равно вся эта история по сути псевдослучайна, просто у тебя в качестве "шума" используются координаты и время клика. |
| Автор: PsiMagistr 5.5.2020, 07:49 | ||||||
Может быть и странный. Вот он. х, у - координаты указателя. d1, d2 - засекатели времени. flag - булева переменная.
Добавлено через 2 минуты и 51 секунду А это случайное число от мин до макс через RNGCryptoServiceProvider.
Добавлено через 6 минут Шут с этой истинной случайностью, а насколько это криптостойко? Оба способа. Как Вам кажется? |
| Автор: THandle 5.5.2020, 14:50 |
| На мой взгляд, оба варианта одинаковы в плане криптостойкости) в качестве seedа используется же конструкция одного и того же типа, просто полученная немного разными псевдослучайными путями. Вопрос в том, какой результат нужно получить. Я придерживаюсь того, что в подавляющем большинстве случаев не стоит придумывать велосипед, а лучше использовать готовые решения, в том числе и в криптографии. Если интересна криптография, я бы наверное посоветовал пройти вот этот вот https://www.coursera.org/learn/crypto. |
| Автор: PsiMagistr 5.5.2020, 17:34 | ||
Доброго времени суток. Спасибо огромное! Нужна либо истинно случайная последовательность, либо на худой конец криптостойкая. Без этого одноразовый блокнот теряет свой смысл... И из невзламываемого становится взламываемым. Я просто сторонним библиотекам не особо доверяю, может и зря. Кроме того хочется и самому попробовать... А вариант с шумом от мышиного х-у не очень? |
| Автор: THandle 5.5.2020, 17:41 |
Ну в случае если хочется самому попробовать, то почему бы и нет. Пробовать надо, это дело хорошее |
| Автор: PsiMagistr 5.5.2020, 18:16 | ||
Я вшил оба способа генерирования. Плюс хочу шифротаблицы читать из текстовых файлов. Я так понимаю даже криптостойкий генератор требованию истинной случайности не отвечает? Истинная это только на аппаратном уровне решается, да? Типа счетчика Гейгеоа, шумовых замеров, или там датчиков атмосферного давления? Или я не прав? |
| Автор: THandle 7.5.2020, 19:36 |
| Ну истинная случайность может порождаться только некими квантовыми процессами, на сколько я помню. Да и не думаю что для подобного рода задач нужна "истинная" случайность. Вполне хватит случайности на основе разных составляющих факторов. Хочется мышку и время - пусть так) Как интересно тема перешла из разницы между датами в дискуссию о случайностях) Жаль, что на Винграде осталось так мало живых участников( PsiMagistr, успехов в реализации!) |