JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 1
  • Score
    100M100P100Q16501F
  • License MIT

Generate QRs with encrypted data

Package Exports

  • qrcrypt

Readme

Ask DeepWiki

Node.js TypeScript

qrcrypt

Simple QR Generator package that allows to encrypt QR data.

[!CAUTION] This package encrypts data in QR codes, but it is not intended for highly sensitive information. Use with caution encryption does not guarantee full security.

Installation

Install qrcrypt with npm

npm install qrcrypt

Usage/Examples

Generate normal svg QR

import { toQR } from 'qrcrypt'

async function generateQR() {
    const QR = await toQR({returnType: 'svg', data: `https://duckduckgo.com`});
    console.log(QR) // Out: <svg xmlns="htt...
}

Generate encrypted svg QR

import { toQR } from 'qrcrypt'

async function generateQR() {
    const QR = await toQR({password:'key', returnType: 'svg', data: `...`});
    console.log(QR) // Out: <svg xmlns="htt...
}

Detail

Qrcrypt is an extension of the qrcode package and it's objective is to chain it with an external web to authenticate the passwords. For now, when reading an encrypted QR, it can show the data as a JSON or can redirect to an URL with the data needed to decrypt as URI parameters. My intention is to have a way to validate the passwords without the need of internet or a special app. But because of security reasons in common QR code readers this is on work in progress.

API

toQR( {parameters} )

Parameters:

· data: string This will be the data that the QR stores

· returnType: 'image' | 'text' | 'svg' Format of the QR

Encrypted QR parameters:

· password: string Key for the encryption

· encryptedFormat: 'json' | 'web' How the data 'inside' the QR looks.
json:
{salt:"...",iv:"...",data:"..."}

web:
https://url.com/?salt=...&iv=...&data=...

· authWebURL: 'string Url to redirect with the URI parameters

LICENSE

This project is licensed under the MIT License. You are free to use, modify, and distribute it.
No warranty is provided. Use at your own risk.