Introduced Crypt Functions

This commit is contained in:
2025-09-28 17:43:44 +02:00
parent 83fc24be0c
commit 7482e974f2
3 changed files with 4383 additions and 1 deletions

39
src/utils/crypt.ts Normal file
View File

@@ -0,0 +1,39 @@
import crypto from "crypto";
import {secrets} from "./secrets"
const ALGORITHM = "aes-256-gcm";
export function encrypt(text) {
const ENCRYPTION_KEY = Buffer.from(secrets.ENCRYPTION_KEY, "hex");
const iv = crypto.randomBytes(16);
const cipher = crypto.createCipheriv(ALGORITHM, ENCRYPTION_KEY, iv);
const encrypted = Buffer.concat([cipher.update(text, "utf8"), cipher.final()]);
const tag = cipher.getAuthTag();
return {
iv: iv.toString("hex"),
content: encrypted.toString("hex"),
tag: tag.toString("hex"),
};
}
export function decrypt({ iv, content, tag }) {
console.log(iv)
const ENCRYPTION_KEY = Buffer.from(secrets.ENCRYPTION_KEY, "hex");
const decipher = crypto.createDecipheriv(
ALGORITHM,
ENCRYPTION_KEY,
Buffer.from(iv, "hex")
);
decipher.setAuthTag(Buffer.from(tag, "hex"));
const decrypted = Buffer.concat([
decipher.update(Buffer.from(content, "hex")),
decipher.final(),
]);
return decrypted.toString("utf8");
}