UNPKG

keygentoolshed

Version:

Key generation utilities for cryptographic operations. QUANTUM ENCRYPTION FOLDER UPDATE!!! See its folder for all <3

65 lines (53 loc) 1.67 kB
// whatever nerd is reading my code this was inspired by gs1-key (https://www.npmjs.com/package/gs1-key) import fs from 'fs'; import path from 'path'; function calculateCheckDigit(gtin) { const digits = gtin.split('').map(Number); const sum = digits.slice(0, -1).reduce((acc, digit, index) => { return acc + (index % 2 === 0 ? digit : digit * 3); }, 0); const checkDigit = (10 - (sum % 10)) % 10; return checkDigit; } function generateGS1Key(format) { let key = ''; const length = { 'GTIN-8': 7, 'GTIN-12': 11, 'GTIN-13': 12, 'GTIN-14': 13, 'GSIN': 13, 'SSCC': 18 }[format]; if (!length) { throw new Error('Invalid format specified.'); } for (let i = 0; i < length; i++) { key += Math.floor(Math.random() * 10).toString(); } const checkDigit = calculateCheckDigit(key); key += checkDigit; return key; } const args = process.argv.slice(2); let format = ''; if (args.length === 0) { console.error('No format provided. Use --format followed by the format (GTIN-8, GTIN-12, GTIN-13, GTIN-14, GSIN, SSCC).'); process.exit(1); } for (let i = 0; i < args.length; i++) { if (args[i] === '--format') { format = args[i + 1]; break; } } if (!format) { console.error('Format not specified. Use --format followed by the format.'); process.exit(1); } try { const gs1Key = generateGS1Key(format); console.log(`Generated ${format}: ${gs1Key}`); } catch (error) { console.error('Error generating GS1 key:', error.message); }