0

バッファは、CBOR をデコードしてからエンコードしてからデコードすると、同じ値を返しません。

const greenpassData = cbor.decodeAllSync(cbor_data);

// --------------------------------
//Want the CBOR data after decoding  CBOR Data

const greenpassDataEncode = cbor.encode(greenpassData);

console.log(greenpassDataEncode);
console.log(cbor_data);

完全なコード GreenPass QR コードをデコードする方法。https://git.gir.st/greenpass.git/blob_plain/master:/greenpass.pyに触発されたシンプルなグリーン パス デコーダー 完全なコード GreenPass QR コードをデコードする方法。https://git.gir.st/greenpass.git/blob_plain/master:/greenpass.pyに触発されたシンプルなグリーン パス デコーダー 完全なコード GreenPass QR コードをデコードする方法。https://git.gir.st/greenpass.git/blob_plain/master:/greenpass.pyに触発されたシンプルなグリーン パス デコーダー 完全なコード GreenPass QR コードをデコードする方法。https://git.gir.st/greenpass.git/blob_plain/master:/greenpass.pyに触発されたシンプルなグリーンパスデコーダー

/**
 * Simple green pass decoder inspired by https://git.gir.st/greenpass.git/blob_plain/master:/greenpass.py
 *
 * 2021 Lorenzo Millucci
 * 
 * Before usage install following dependecies `npm install base45 cbor jpeg-js jsqr pako`
 */

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');

// Set the path to the green pass QR
const FILE_PATH = __dirname + '/greenpass.jpeg';

// Read image file
const greenpassJpeg = fs.readFileSync(FILE_PATH);
const greenpassImageData = jpeg.decode(greenpassJpeg, { useTArray: true });

// Decode QR
const decodedGreenpass = jsQR(greenpassImageData.data, greenpassImageData.width, greenpassImageData.height);

// Remove `HC1:` from the string
const greenpassBody = decodedGreenpass.data.substr(4);
console.log(greenpassBody)

// Data is Base45 encoded
const decodedData = base45.decode(greenpassBody);

// And zipped
const output = pako.inflate(decodedData);
const results = cbor.decodeAllSync(output);
[headers1, headers2, cbor_data, signature] = results[0].value;

const greenpassData = cbor.decodeAllSync(cbor_data);

// --------------------------------
//Want the cbor data after decoding  cbor Data

const greenpassDataEncode = cbor.encode(greenpassData);

console.log(greenpassDataEncode);
console.log(cbor_data);
// --------------------------------

var josnString = JSON.stringify(greenpassData[0].get(-260).get(1), null, 2);
//new Encoded Array
const ecodeArrayGreenPassData = cbor.encode(greenpassData);
const greenpassData2 = cbor.decodeAllSync(ecodeArrayGreenPassData);

4

1 に答える 1