печать паролей: как я могу различить l / 1, o / O / 0 и т. д. и визуализировать пробелы?

10

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

Пока что лучшее, что я нашел, это «Bitstream vera sans mono» в openoffice, основанный на этом: http://forums.overclockers.co.uk/showthread.PHP?p=16215032 (как ни странно, он не указан в списке шрифтов, но если я наберу его, он будет работать.: /) «Lucida Console» не существует в openoffice / libreoffice.

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

KIAaze
источник
1
Вы можете немного упростить задачу, исключив несколько проблемных символов, таких как пробел. Учитывая большой набор символов из верхних / нижних букв, цифр и знаков пунктуации, я бы исключил пробелы, например, без значительного сокращения комбинаторных возможностей
uSlackr
Как насчет шрифта OCR-A?
Linker3000
1
В вашей ОС может быть установлен DejaVu вместо Bitstream Vera. DejaVu - это форк Bistream Vera, который добавляет множество вариантов и дополнительную поддержку для других языков.
afrazier

Ответы:

3

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

Тем не менее, вы захотите взглянуть на шрифты, оптимизированные для программистов, потому что они постоянно сталкиваются с такими проблемами. У всех есть свое мнение, поэтому Google для "программирования шрифтов", и вы найдете много страниц с образцами для просмотра, как этот . Я очень неравнодушен к самому Консоласу:

Образец Консоласа

Теперь, одна вещь, которую вы можете сделать, чтобы помочь с видимым пробелом, это использовать Notepad2 в качестве текстового редактора. (Я сам использую вариант Notepad2-Mod .) У него есть опция для видимых пробелов, поэтому вкладки обозначаются стрелкой, а пробелы - маленькой точкой в ​​середине символьного пространства. Это не только для отображения, они также будут распечатаны. Ниже приведен снимок PDF-файла, созданного путем печати из Блокнота 2 с видимыми пробелами и направляющими отступов:

Консолы с пробелами

Все остальные редакторы на основе Scintilla, вероятно, ведут себя так же.

afrazier
источник
1

Вы можете сделать это так, как банки печатают свои PIN-коды - как в обычном, так и в фонетическом виде

Таким образом, пароль 'h30yg28fi1' также будет написан:

АИЧ ТРИ НУЛЯ, ПОЧЕМУ ГИ, ДВА, ВОСЕМЬ, ЭФФ, ОДИН ОДИН

или что-то подобное.

Это очень хорошо различало бы «о», «ОН» и «НОЛЬ», «глаз», «ГЛАЗ», «ЭЛЛ», «ЭЛЛ» и «ОДИН».

Majenko
источник
1

Извините за поздний отзыв. Я использовал это решение в конце (шрифт bitstream vera в латексе с дословным переводом *):

\documentclass{article}

\usepackage{bera}

\begin{document}

% text using bera font (Bitstream Vera), which has dotted zeroes
% the * after verbatim adds visible spaces
\begin{verbatim*}'1 l oO0}4 _i6D-WtF#q\end{verbatim*}

% visible space
hello\textvisiblespace world

% slashed zero
\o

\end{document}

Я оставил несколько других вещей, которые попробовал.

Чтобы создать из него pdf:

pdflatex password_printing_4.tex

Если вы получили какие-либо ошибки, попробуйте просто установить texmaker. Это зависит от большинства необходимых латексных пакетов:

sudo apt-get install texmaker

Я также попробовал шрифт inconsolata в латексе, но, похоже, он не тот же:

\documentclass{article}

\usepackage{inconsolata}
%\usepackage{bera}

% requires texlive-xetex package:
\usepackage[xetex]{graphicx}
%\usepackage{fontspec,xunicode}
%\defaultfontfeatures{Mapping=tex-text,Scale=MatchLowercase}
%\setmainfont[Scale=.95]{Inconsolata}

\begin{document}

% text using bera font (Bitstream Vera), which has dotted zeroes
% the * after verbatim adds visible spaces
\begin{verbatim*}`!=}k o6~-cRR1loO0\end{verbatim*}

%\renewcommand{\bera}{\inconsolata}
\texttt{This is Inconsolata. zero: 0}

%\renewcommand{\inconsolata}{\bera}
\texttt{This is Bera. zero: 0}

% visible space
hello\textvisiblespace world

% slashed zero
\o

\end{document}
KIAaze
источник
Это выглядит как лучший ответ, а также то, как спрашивающий (вы :)) решил решить проблему в конце. Почему бы не принять это?
Peth
Ну, может, потому что я это опубликовал? Во всяком случае, да, принято. :)
KIAaze