0

我最近对二维码产生了兴趣,并首先了解了 base45 编码和 CBOR。我在下面有一个代码片段,我想知道是否有一种方法可以实际反转,以便您可以编写一个 json 对象或更改名称并将其转换回原来的样子。

const base45 = require('base45')
const cbor = require('cbor')
const fs = require('fs')
const jpeg = require('jpeg-js')
const jsQR = require('jsqr')
const pako = require('pako')

// decode the qr code

const greenpassJpeg = fs.readFileSync(__dirname + '/real-qr.jpg')
const greenpassImageData = jpeg.decode(greenpassJpeg, { useTArray: true })

const decodedGreenpass = jsQR(greenpassImageData.data, greenpassImageData.width, greenpassImageData.height)
const greenpassBody = decodedGreenpass.data.substr(4)

const decodedData = base45.decode(greenpassBody)
const output = pako.inflate(decodedData)

const results = cbor.decodeAllSync(output);
[headers1, headers2, cbor_data, signature] = results[0].value

const greenpassData = cbor.decodeAllSync(cbor_data)
const greenpassJson = JSON.stringify(greenpassData[0].get(-260).get (1), null, 2)
4

0 回答 0