powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / транзакционный словарь
25 сообщений из 42, страница 1 из 2
транзакционный словарь
    #39105944
Фотография Denis.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Коллеги,
необходимо развернуть на виртуалке некий софт, вроде кивалью стораджа. Использоваться будет для генерации коротких uidов в контексте приложения.

Какой софт порекомендуете?
...
Рейтинг: 0 / 0
транзакционный словарь
    #39106356
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Denis.вроде кивалью стораджа.
чё это за мутота?
...
Рейтинг: 0 / 0
транзакционный словарь
    #39106663
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВDenis.вроде кивалью стораджа.
чё это за мутота?Key-value storage
...
Рейтинг: 0 / 0
транзакционный словарь
    #39106667
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAЕвгенийВпропущено...

чё это за мутота?Key-value storage
Неужто без хрустального шара догадался? Я - нет
...
Рейтинг: 0 / 0
транзакционный словарь
    #39106668
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Denis.Коллеги,
необходимо развернуть на виртуалке некий софт, вроде кивалью стораджа. Использоваться будет для генерации коротких uidов в контексте приложения.

Какой софт порекомендуете?Зачем для этого какой-то софт разворачивать? 10 строк кода поверх RNGCryptoServiceProvider .
...
Рейтинг: 0 / 0
транзакционный словарь
    #39106840
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAЗачем для этого какой-то софт разворачивать? 10 строк кода поверх RNGCryptoServiceProvider .
А Guid.NewGuid() не гадится?
...
Рейтинг: 0 / 0
транзакционный словарь
    #39106888
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAЕвгенийВпропущено...

чё это за мутота?Key-value storage

в таком случае в оригинале должно быть "кивалью сторагэ"
...
Рейтинг: 0 / 0
транзакционный словарь
    #39106977
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВskyANAЗачем для этого какой-то софт разворачивать? 10 строк кода поверх RNGCryptoServiceProvider .
А Guid.NewGuid() не гадится?Это ТСа надо спросить, что он имел в виду под "короткими uidами".
...
Рейтинг: 0 / 0
транзакционный словарь
    #39106979
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WinnipuhskyANAпропущено...
Key-value storage

в таком случае в оригинале должно быть "кивалью сторагэ"Почему? лухари вилаж?
...
Рейтинг: 0 / 0
транзакционный словарь
    #39107591
Фотография Denis.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
идея в том что нужно генерировать uid длинной, скажем, 5-6 символов, с заданным словарем. В моем случае большие и маленькие английские буквы. Нужно быть уверенным что сочетание не повторялось, для этого я сейчас генерирую uid, пытаюсь его сохранить в azuretablestorage, в случае неуспеха(такой уже был) генерирую новый и так далее. Но с азура хочу свинчивать и думаю над альтернативой.
...
Рейтинг: 0 / 0
транзакционный словарь
    #39107614
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
транзакционный словарь
    #39107623
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Denis.Нужно быть уверенным что сочетание не повторялось, для этого я сейчас генерирую uid, пытаюсь его сохранить в azuretablestorage, в случае неуспеха(такой уже был) генерирую новый и так далее.
Может наоборот проблему порешать? Сервер выдает uid по запросу клиента? В принципе тут счетчика достаточно.
Такой сервер написать - делов на полдня.
...
Рейтинг: 0 / 0
транзакционный словарь
    #39107628
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
транзакционный словарь
    #39107630
Фотография Denis.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВ,

а разве там можно использовать свой словарь и имя будет гарантированно уникальным вне зависимости от времени жизни процесса?
...
Рейтинг: 0 / 0
транзакционный словарь
    #39107632
Фотография Denis.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T,

так а сервер откуда его возьмет?
...
Рейтинг: 0 / 0
транзакционный словарь
    #39107647
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Denis.Dima T,

так а сервер откуда его возьмет?
Сгенерит.

Как я понял ты получение ID порешал нездоровым образом: клиент генерит ID, а потом сервер проверяет что этот ID не был ранее использован.
Обычно сервер выдает ID и следит чтобы не выдать два одинаковых. Простейшее решение: счетчик на сервере - отдал значение клиенту, сделал +1. Никаких хранилищ не надо. Надо хранить только текущее значение счетчика.
...
Рейтинг: 0 / 0
транзакционный словарь
    #39107667
Фотография Denis.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TDenis.Dima T,

так а сервер откуда его возьмет?
Сгенерит.

Как я понял ты получение ID порешал нездоровым образом: клиент генерит ID, а потом сервер проверяет что этот ID не был ранее использован.
Обычно сервер выдает ID и следит чтобы не выдать два одинаковых. Простейшее решение: счетчик на сервере - отдал значение клиенту, сделал +1. Никаких хранилищ не надо. Надо хранить только текущее значение счетчика.
Здесь сервер и клиент - вопрос точки зрения. да. У меня отдает сервере айдишники, но далее мы залезаем внутрь сервера и смотрим, а как он эти айдишникики генерирует. А генерирует он их так что придумывает вариант и проверяет был ли такой уже или нет. Просто инкремент не подходит так как айдишник нужен из произвольного алфавита. Суть - ссылка автоматически автоматизирующая пользователя в системе и доставляемая через смс. Он а должна быть короткой. Она не должна быть легко перебираемой. Пример: 'http://service.ru/aS6h7zx'
...
Рейтинг: 0 / 0
транзакционный словарь
    #39107680
Фотография Denis.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автоматизирующая = авторизующая
...
Рейтинг: 0 / 0
транзакционный словарь
    #39107901
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Denis.идея в том что нужно генерировать uid длинной, скажем, 5-6 символов, с заданным словарем. В моем случае большие и маленькие английские буквы.
Код: c#
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.
namespace UniqueIdGeneration
{
    using System;
    using System.Security.Cryptography;
    using System.Text;

    class Program
    {
        static string GenerateUniqueId(int size, string symbols)
        {
            char[] chars = symbols.ToCharArray();
            var data = new byte[1];
            var crypto = new RNGCryptoServiceProvider();
            crypto.GetNonZeroBytes(data);
            data = new byte[size];
            crypto.GetNonZeroBytes(data);
            var result = new StringBuilder(size);

            foreach (byte b in data)
            {
                result.Append(chars[b % (chars.Length - 1)]);
            }

            return result.ToString();
        }

        static void Main(string[] args)
        {
            var size = 6;
            var symbols = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";

            for (int i = 0; i < 24; i++)
            {
                Console.WriteLine(GenerateUniqueId(size, symbols));
            }

            Console.ReadKey();
        }
    }
}
...
Рейтинг: 0 / 0
транзакционный словарь
    #39107942
Фотография Denis.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,

так он же не гарантирует уникальность?
...
Рейтинг: 0 / 0
транзакционный словарь
    #39107945
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Denis.Просто инкремент не подходит так как айдишник нужен из произвольного алфавита.
Чуть сложнее: заранее генери список произвольных заведомо уникальных ID, запиши их в файл, счетчик будет указывать на номер ID в файле. По мере окончания файла генерить следующую порцию. Правда тут возникает возможность утечки будущих ID если сервис поломают и файл утащат.
Denis.Суть - ссылка автоматически автоматизирующая пользователя в системе и доставляемая через смс. Он а должна быть короткой. Она не должна быть легко перебираемой. Пример: 'http://service.ru/aS6h7zx'
Я так понимаю что при отправке СМС это ID попадает в какую-то БД сервиса, почему бы по ней не проверять? Если не попадает - создать таблицу в БД и ее задействовать для проверок. Сервис какой БД пользуется?
...
Рейтинг: 0 / 0
транзакционный словарь
    #39107957
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Denis.так он же не гарантирует уникальность?
RNGCryptoServiceProvider гаратнтирует случайность (randomness), а уникальность не гарантирует даже Guid.NewGuid()
...
Рейтинг: 0 / 0
транзакционный словарь
    #39107996
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AxeleronRNGCryptoServiceProvider гаратнтирует случайность (randomness),

Он гарантирует лишь то, что злому бородатому дядьке, который имеет некоторое множество ранее последовательно сгенерированных значений, будет трудно повторить последовательность, которую вы сгенерируете в будущем.
Axeleronа уникальность не гарантирует даже Guid.NewGuid()
Это так, но есть нюанс .
Denis.так он же не гарантирует уникальность?
Полную уникальность гарантирует только монотомно возрастающая/убывающая последовательность.
...
Рейтинг: 0 / 0
транзакционный словарь
    #39108020
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Denis.skyANA,

так он же не гарантирует уникальность?Кто он? Этот метод, или RNGCryptoServiceProvider?

RNGCryptoServiceProvider нет, а метод вполне. Погуглите.
...
Рейтинг: 0 / 0
транзакционный словарь
    #39108036
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К примеру у меня сейчас в БД на текущий момент уже 46653 записи, повторений не наблюдается.

А сколько у Вас пользователей? Сколько предполагаете будет сгенерировано ссылок?

P.S.: ну и Вы всегда можете добавить дополнительную проверку.
...
Рейтинг: 0 / 0
25 сообщений из 42, страница 1 из 2
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / транзакционный словарь
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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