@shadow-dev/core
Version:
A modular core framework for Discord bot development, providing commands, buttons, menus, middleware, and more.
25 lines (24 loc) • 1.01 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.generateSecureToken = generateSecureToken;
exports.generateApiKey = generateApiKey;
exports.signHMAC = signHMAC;
exports.verifyHMAC = verifyHMAC;
const crypto_1 = __importDefault(require("crypto"));
function generateSecureToken(length = 48) {
return crypto_1.default.randomBytes(length).toString("hex");
}
function generateApiKey(prefix = "sck", byteLength = 32) {
const raw = crypto_1.default.randomBytes(byteLength).toString("base64url");
return `${prefix}_${raw}`;
}
function signHMAC(data, secret) {
return crypto_1.default.createHmac("sha256", secret).update(data).digest("hex");
}
function verifyHMAC(data, secret, signature) {
const expected = signHMAC(data, secret);
return crypto_1.default.timingSafeEqual(Buffer.from(expected), Buffer.from(signature));
}