Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];

Вниз

Просьба владельцам телефонов   Найти похожие ветки 

 
pasha_golub ©   (2010-05-14 16:52) [0]

Ребяты, я пользователям отправляю код на телефон. Так вот некоторые жалуются, что не могут отделить цифру 0 от буквы О. Посему к Вам просьба такового толка, если не сложно, конечно. Возьмите свой телефон и попробуйте набрать на нём два текста:
1. S1V0IO
2. s1v0io

Я хочу узнать, в каком виде отдавать код. В нижнем регистре или в верхнем. Что лучше читается? Да, и представьте заодно, что вы обычный дядя (или тётя), который не знает, чем на самом деле отличается 0 от О. ;)
Спасибо


 
DVM ©   (2010-05-14 16:54) [1]

В таких вещах обычно исключают те буквы и цифры, для которых возможна неоднозначная трактовка.


 
DVM ©   (2010-05-14 16:56) [2]

т.е сразу на вылет O O о 1 I l


 
Anatoly Podgoretsky ©   (2010-05-14 17:02) [3]

> pasha_golub  (14.05.2010 16:52:00)  [0]

Есть особый прием - не использовать в кодах определенные символы, например
не использовать 0 и О, если только заранее неизвестно, что в коде только
цифры. Также и по другим символам


 
pasha_golub ©   (2010-05-14 17:08) [4]

Друззя. :) Я понимаю, что исключают. Но это по сути число в z-ричном представлении (0..9, "a".."z").

Как же мне оттуда выкинуть 0 или о? Я понимаю, что можно, но математика тогда некрасивая получается :)


 
DVM ©   (2010-05-14 17:09) [5]


> pasha_golub ©   (14.05.10 16:52) 


> 1. S1V0IO

Так вот он какой код разблокировки SMS трояна-блокировщика Windows! :)


 
MBo ©   (2010-05-14 17:10) [6]

>Как же мне оттуда выкинуть 0 или о? Я понимаю, что можно, но математика тогда некрасивая получается :)

Использовать сокращенный алфавит


 
DVM ©   (2010-05-14 17:11) [7]


> pasha_golub ©   (14.05.10 17:08) [4]


>  Но это по сути число в z-ричном представлении (0..9, "a".
> ."z").
>
> Как же мне оттуда выкинуть 0 или о?

Да уж из шестнадцатеричного числа букву O как из песни не выкинешь! :)


 
RWolf ©   (2010-05-14 17:18) [8]

>  Но это по сути число в z-ричном представлении
а почему именно в z ?
пусть будет в z минус все ненужные символы.


 
pasha_golub ©   (2010-05-14 17:29) [9]


> MBo ©   (14.05.10 17:10) [6]


> Использовать сокращенный алфавит


> RWolf ©   (14.05.10 17:18) [8]


> пусть будет в z минус все ненужные символы.

Тогда длина кода увеличится. Не хочется. Плюс сервис уже запущен.


> DVM ©   (14.05.10 17:09) [5]
>
> Так вот он какой код разблокировки SMS трояна-блокировщика
> Windows! :)

Спалил ;)


 
pasha_golub ©   (2010-05-14 17:31) [10]

Кстати, хоть кто-то попробовал посмотреть как оно на телефоне выглядит? :))


 
RWolf ©   (2010-05-14 17:33) [11]


> > пусть будет в z минус все ненужные символы.
> Тогда длина кода увеличится. Не хочется. Плюс сервис уже запущен.

Ну, тогда так:

repeat
 код:=СгенерироватьНовыйКод();
until not ЕстьВредныеЦифрыВКоде(код); //когда-нибудь повезёт


 
antonn ©   (2010-05-14 17:38) [12]


> pasha_golub ©   (14.05.10 16:52)

набрал, пока набирал понял, что в [0] не L в нижнем регистре, а еденица...


 
pasha_golub ©   (2010-05-14 17:43) [13]


> RWolf ©   (14.05.10 17:33) [11]

Код - это хеш идентификатора в базе.


 
pasha_golub ©   (2010-05-14 17:43) [14]


> antonn ©   (14.05.10 17:38) [12]
>
>
> > pasha_golub ©   (14.05.10 16:52)
>
> набрал, пока набирал понял, что в [0] не L в нижнем регистре,
>  а еденица...

Тоже засада... Спасибо


 
Fredericco ©   (2010-05-14 17:44) [15]

Так ты же сам выход и написал.
Если вариант с нижним регистром использовать всегда, то о легко отличить от 0. о0.
На телефоне у себя ввел: в верхнем регистре видна разница, но в нижнем она видна лучше.


 
RWolf ©   (2010-05-14 17:45) [16]


> Код - это хеш идентификатора в базе.

а, скажем, при генерации идентификаторов отбрасывать те из них, что дают после хэширования плохой код?


 
Fredericco ©   (2010-05-14 17:46) [17]


> antonn ©   (14.05.10 17:38) [12]

Не, у меня вроде в нижнем l от 1 отличается.


 
pasha_golub ©   (2010-05-14 17:49) [18]


> RWolf ©   (14.05.10 17:45) [16]

Это идентификатор транзакции оплаты. Приходит "сверху". :)

В общем, не поленился. Укоротил алфавит. И вы знаете, код максимум удлиняется на два символа. Что, я считаю, очень даже неплохо.


 
antonn ©   (2010-05-14 17:50) [19]


>
> Не, у меня вроде в нижнем l от 1 отличается.

я сначала ввел из [0] нижнюю строчку, т.к. режим ввода был маленькие буквы и лень было переключать, оказалось что "в исходнике" была еденица :)


 
RWolf ©   (2010-05-14 17:53) [20]


> В общем, не поленился. Укоротил алфавит. И вы знаете, код
> максимум удлиняется на два символа. Что, я считаю, очень
> даже неплохо.

и да, если строка всё ещё кажется длинной, можно просто отбросить лишние символы.


 
DVM ©   (2010-05-14 17:58) [21]


> RWolf ©   (14.05.10 17:53) [20]

если у него там что-то закодировано как же он отбросит. Судя по тому что строка удлинилась, значит он что-то в ней хранит.


 
pasha_golub ©   (2010-05-14 17:59) [22]


> RWolf ©   (14.05.10 17:53) [20]

Я думаю, они переживут строку в 8 символов. :)) Теперь вот вопрос в том, как это все поменять. Если у одних уже коды в старом формате, а новым надо выдавать в новом. Двойную проверку не хочется городить, блин


 
pasha_golub ©   (2010-05-14 18:01) [23]


> DVM ©   (14.05.10 17:58) [21]

Число - от него хеш, потом конверт в буквенно-цифровое представление.


 
Mystic ©   (2010-05-14 18:43) [24]


> Как же мне оттуда выкинуть 0 или о? Я понимаю, что можно,
>  но математика тогда некрасивая получается :)


А чего некрасивого то?


Symbols = "0123456789abcdefghjkmnpqrstuvwxyz";
SymLen = Length(Symbols);

function ToSym(X: Integer): string;
begin
 Result := "";
 while X > 0 do
 begin
   Index := X mod SymLen;
   X := X div SymLen;
   Result := Result + Symbols[Index+1];
 end;
end;

function FromSym(const S: string): Integer;
var
 I: Integer;
begin
 Result := 0;
 for I := 1 to Length(S) do
 begin
   I := Pos(S[I], Symbols) - 1;
   if I < 0 then raise EConvertError.Create("Invalid sym");
   Result := SymLen * Result + I;
 end;
end;


 
test ©   (2010-05-14 19:29) [25]

Я бы еще "3" и "з" считал за одну букву, если надо чтобы код приходил в любом случае.  Ну и 9 и g мало ли что они на экране видят.Имхо проверка должна быть в стиле:
TRegExpr [A][oOQ0][9g][з3] для A093
чтобы все пришло.

Ты поинтересуйся разработкой под мобильники там эти экраны каждый лепит из тех соображений что дизигнер скажет и получается в итоге чудные девайсы типа этого.
http://mobbit.info/item/2010/2/12/g-point-ny-ochen-neobychnaya-konceptyal-naya-mysh


 
Anatoly Podgoretsky ©   (2010-05-14 20:33) [26]

> pasha_golub  (14.05.2010 17:08:04)  [4]

Вообще то это не так, это совсем другое множество 0..N и к ней таблица
соответствия.


 
Anatoly Podgoretsky ©   (2010-05-14 20:36) [27]

> DVM  (14.05.2010 17:11:07)  [7]

Шестнадцатиричное число также находится в зоне риска, часто путаются символы
8 и B, их надо заменять другими буквами, например H и Z


 
Anatoly Podgoretsky ©   (2010-05-14 20:40) [28]

> pasha_golub  (14.05.2010 17:29:09)  [9]

Все таки бери за основу принцип HEX кода, очень простая реализация, только
вместо стандартных кодов, замени ряд HEX букв другими, через таблицу
подстановки [0..15] of char
Выкидывать надо следующие буквы 0, 1. 6, 8, B - эти пять заменить другими с
четким написанием.


 
Дмитрий С ©   (2010-05-14 20:58) [29]

Как вариант писать такой текст:


S1V0IO
Читается: Эс Один Вэ Ноль Ай Оу


Еще вариант, заменяй 1 I 0 O на псевдографику:
S*V%$#

А при проверке заменяй обратно.

Еще вариант (плохой). Делай поиск в базе с учетом ошибок:
`hash` RLIKE "S[1I]V[0O][1I][0O]"  (MySQL)


 
GrayFace ©   (2010-05-14 21:19) [30]

pasha_golub ©   (14.05.10 17:49) [18]
В общем, не поленился. Укоротил алфавит. И вы знаете, код максимум удлиняется на два символа. Что, я считаю, очень даже неплохо.

Странно, как целых 2 получилось?


 
Smile   (2010-05-14 21:42) [31]

> Ребяты, я пользователям отправляю код на телефон.

А где они этот код используют?
На компьютере или на телефоне? :)
Не проще ли передавать этот код электронной почтой?
Тогда проблем будет заметно меньше.
Скопипастили и все (не разбираю цифра там или буква)


 
test ©   (2010-05-14 21:51) [32]

Дмитрий С ©   (14.05.10 20:58) [29]
А чем RLIKE плох?


 
pasha_golub ©   (2010-05-17 11:42) [33]


> GrayFace ©   (14.05.10 21:19) [30]
>
> pasha_golub ©   (14.05.10 17:49) [18]
> В общем, не поленился. Укоротил алфавит. И вы знаете, код
> максимум удлиняется на два символа. Что, я считаю, очень
> даже неплохо.
> Странно, как целых 2 получилось?

На один. У меня код из двух частей на самом деле. :)


 
Leonid Troyanovsky ©   (2010-05-17 14:04) [34]


> pasha_golub ©   (14.05.10 16:52)
 
> Ребяты, я пользователям отправляю код на телефон

Поубивал бы всех, кто буквы с цифрами мешает.
Чего бы цифрами не обозначать, хоть для телефона, хоть для компа.
Пусть цифр больше, но только цифры.

Ну, и десятичные, конечно, не римские и не 16-ричные.

--
Regards, LVT.


 
pasha_golub ©   (2010-05-17 14:47) [35]

Чем длиннее код, тем легче ошибиться.


 
Smile   (2010-05-17 15:24) [36]

<off top>
>pasha_golub ©   (14.05.10 16:52)
... я пользователям отправляю код на телефон...

С мобильного телефона, испытывая те же муки и страдания как твои получатели кода?
Или с компьютера, лишаясь такого рода удовольствия?
</off top>
:)


 
Leonid Troyanovsky ©   (2010-05-17 15:45) [37]


> pasha_golub ©   (17.05.10 14:47) [35]

> Чем длиннее код, тем легче ошибиться.

Дели на группы тройками, люди спокойно их считывают.

А вот, скажем, читать с чека банкомата пароли из цифробуквенной мешанины и вводить их даже на комп (с учетом раскладки и шифта) - удовольствие гораздо ниже среднего, особенно которые голубым
шрифтом на серой бумажке.

--
Regards, LVT.


 
pasha_golub ©   (2010-05-17 15:51) [38]


> Smile   (17.05.10 15:24) [36]


> Или с компьютера, лишаясь такого рода удовольствия?

С компьютера, конечно. :)


> Leonid Troyanovsky ©   (17.05.10 15:45) [37]
>
> Дели на группы тройками, люди спокойно их считывают.

Подумаю. Спасибо.



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.54 MB
Время: 0.066 c
6-1224492803
Поросенок Винни-Пух
2008-10-20 12:53
2010.08.27
gprs modem + sms


2-1269770353
Delphist2
2010-03-28 13:59
2010.08.27
locktype в ADO


15-1266787803
Юрий
2010-02-22 00:30
2010.08.27
С днем рождения ! 22 февраля 2010 понедельник


2-1265445748
lewka
2010-02-06 11:42
2010.08.27
Размеры изображения


2-1270734164
Pavel
2010-04-08 17:42
2010.08.27
Проблема с кодировкой





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский