Как я могу генерировать уникальный, маленький, случайный, и удобный для пользователя ключ?

Вы можете сделать это в нескольких строках, просто переопределите onPostExecute при вызове AsyncTask. Вот вам пример:

new AasyncTask()
{
    @Override public void onPostExecute(String result)
    {
       // do whatever you want with result 
    }
}.execute(a.targetServer);

Надеюсь, это помогло вам, счастливая трединга:)

13
задан e-sushi 2 December 2013 в 12:57
поделиться

5 ответов

Вот то, как я сделал бы это.

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

Тогда я выполнил фильтр на нем, таким образом, неясные слова удалены и это слова, которые являются слишком длинными, исключены.

Тогда мой алгоритм поколения выбрал бы 2 слова из списка и связал бы их и добавил бы случайные 3 числа цифр.

я могу также рандомизировать шаблон выбора слова между глаголом/существительными как

eatCake778
pickBasket524
rideFlyer113 и т.д.

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

И так как это - большая рандомизация, Jeff , Опасностью NaГЇvetГ© является обязательное для чтения. Также удостоверьтесь, что изучили атаки с подбором по словарю заранее.

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

7
ответ дан 2 December 2019 в 00:47
поделиться

В C# я использовал' Система. IO.Path. GetRandomFileName (): Строка ' метод..., но я генерировал соль для имен файлов отладки. Этот метод возвращает материал, который похож на Ваш первый пример, кроме со случайным '.xyz' расширение файла также.

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

3
ответ дан 2 December 2019 в 00:47
поделиться

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

byte[] randomBytes = new byte[4];
RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();
rng.GetBytes(randomBytes);

можно увеличить lengh массива байтов и щипнуть символьные значения, которые Вы хотите позволить.

3
ответ дан 2 December 2019 в 00:47
поделиться

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

, Если, хотя Вы ищете способ закодировать случайный код в строке URL, которая является проблемой, с которой я имел дело некоторое время тогда я, что я сделал, являюсь использованием 64-разрядные закодированные GUID.

0
ответ дан 2 December 2019 в 00:47
поделиться

Вы могли загрузить свой список слов как chakrit предложенный в таблицу данных или XML-файл с уникальным последовательным ключом. При получении случайного слова используйте генератор случайных чисел для определения что слова выбрать их ключом. Если Вы связываете 2 из них, я не думаю, что необходимо включать числа в строку, если "истинная случайность" не является частью цели.

0
ответ дан 2 December 2019 в 00:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: