Package Exports
- qrcrypt
Readme
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 qrcryptUsage/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.