WedX - журнал о программировании и компьютерных науках

Создание QR-кода, который может быть прочитан только моим приложением

Я разработал считыватель QR-кода и сканер, используя исходный код ZXings. Теперь я хочу встроить информацию в код qr, который может прочитать только мой читатель, и ни один другой читатель не может прочитать. Осуществимо ли это?

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

QR Driod, кажется, использует что-то подобное, используя защиту паролем (https://qrdroid.com/blog/author/droidla/page/2), но я не мог понять, как они это сделали.

25.07.2012


Ответы:


1

Есть два подхода, которые вам приходят на ум;

  1. Зашифровать информацию. Вы можете внедрить систему (которую, как вы говорите, делает QRDroid вместе со многими другими подобными приложениями), в которой вы используете следующий процесс; 1 возьмите информацию, которую вы хотите поместить в свой QR, 2 зашифруйте эту информацию, используя стандартный протокол (Википедия может помочь вам начать здесь, если вы полностью в темноте о таких вещах) - это может быть защищено паролем или каким-либо другим способом. Частично зависит от желаемого уровня секретности... 3 закодируйте новую зашифрованную информацию в QR-код. На другом конце приложение считывает QR-код, затем расшифровывает его и вуаля.

  2. Разработать другой протокол в стиле QR? Это явно гораздо более амбициозно и не обязательно обеспечит какую-либо теоретическую безопасность (если только вы не реализовали часть 1). Это однако привело бы к созданию кода, нечитаемого другими стандартными приложениями, поскольку они не знали бы, как интерпретировать наблюдаемый шаблон. Тем не менее, много тщательных размышлений было потрачено на разработку QR как полезного подхода, так что это будет упражнение, которое я бы предложил рассмотреть только для технического удовольствия от его использования :D

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

25.07.2012
  • Прошло много времени, но @unwitting, как бы реализовать # 2? Я везде искал, как это инициировать. 12.10.2016

  • 2

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

    25.07.2012
    Новые материалы

    Объяснение документов 02: BERT
    BERT представил двухступенчатую структуру обучения: предварительное обучение и тонкая настройка. Во время предварительного обучения модель обучается на неразмеченных данных с помощью..

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

    Работа с цепями Маркова, часть 4 (Машинное обучение)
    Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

    Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
    Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

    Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
    Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..

    Учебные заметки: создание моего первого пакета Node.js
    Это мои обучающие заметки, когда я научился создавать свой самый первый пакет Node.js, распространяемый через npm. Оглавление Глоссарий I. Новый пакет 1.1 советы по инициализации..

    Забудьте о Matplotlib: улучшите визуализацию данных с помощью умопомрачительных функций Seaborn!
    Примечание. Эта запись в блоге предполагает базовое знакомство с Python и концепциями анализа данных. Привет, энтузиасты данных! Добро пожаловать в мой блог, где я расскажу о невероятных..


    Для любых предложений по сайту: [email protected]