Files
n8n-workspace/Crypto.json
2001-01-01 00:00:00 +00:00

130 lines
5.8 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"updatedAt": "2026-04-05T08:26:11.546Z",
"createdAt": "2026-04-04T19:28:29.276Z",
"id": "W2OEeYHl5e7PhC21",
"name": "Crypto",
"active": false,
"isArchived": false,
"nodes": [
{
"parameters": {},
"type": "n8n-nodes-base.manualTrigger",
"typeVersion": 1,
"position": [
-272,
0
],
"id": "23d848a0-de09-464a-a77e-9eb2965bbbaf",
"name": "When clicking Execute workflow"
},
{
"parameters": {
"jsCode": "const fs = require('fs');\n\nconst pathsToCheck = [\n '/home/node/.n8n',\n '/home/node/.n8n/crypto_utils.js',\n './crypto_utils.js'\n];\n\nconst results = {};\n\npathsToCheck.forEach(p => {\n try {\n results[p] = fs.existsSync(p) ? 'Gefunden' : 'Nicht da';\n if (fs.lstatSync(p).isDirectory()) {\n results[p + '_inhalt'] = fs.readdirSync(p);\n }\n } catch (e) {\n results[p] = 'Fehler: ' + e.message;\n }\n});\n\nreturn results;"
},
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
112,
192
],
"id": "72597a2d-a899-4bc3-919f-c7b11ed39942",
"name": "Code in JavaScript2",
"executeOnce": false
},
{
"parameters": {
"assignments": {
"assignments": [
{
"id": "67c488b2-bd53-483d-8ac5-f0561b4138d8",
"name": "crypto",
"value": "const crypto = require('crypto');\n\nfunction encrypt(text, encryption_key) {\n // 2. Erzeuge einen zufälligen Initialisierungsvektor (IV)\n const iv = crypto.randomBytes(16);\n \n // 3. Cipher-Objekt erstellen\n const cipher = crypto.createCipheriv('aes-256-gcm', Buffer.from(encryption_key), iv);\n\n // 4. Verschlüsseln\n let encrypted = cipher.update(text, 'utf8', 'hex');\n encrypted += cipher.final('hex');\n\n // 5. Den Authentifizierungs-Tag abrufen (WICHTIG bei GCM)\n const authTag = cipher.getAuthTag().toString('hex');\n\n // 6. Alles zusammenfügen: iv + verschlüsselter Text + Tag\n // Wir trennen sie mit Doppelpunkten, damit wir sie später leicht splitten können\n return iv.toString('hex') + ':' + encrypted + ':' + authTag;\n}\n\n// 1. Konfiguration (Diese Werte sollten aus Umgebungsvariablen kommen!)\n// Der Key muss exakt 32 Zeichen lang sein für AES-256\nconst encryption_key = '12345678901234567890123456789012'; \n\n/**\n * Entschlüsselt einen String\n * @param {string} text - Der verschlüsselte String im Format \"iv:content:tag\"\n */\nfunction decrypt(text, encryption_key) {\n const textParts = text.split(':');\n const iv = Buffer.from(textParts.shift(), 'hex');\n const encryptedText = Buffer.from(textParts.shift(), 'hex');\n const authTag = Buffer.from(textParts.shift(), 'hex'); // GCM Modus nutzt Auth Tags zur Sicherheit\n\n const decipher = crypto.createDecipheriv('aes-256-gcm', Buffer.from(encryption_key), iv);\n decipher.setAuthTag(authTag);\n\n let decrypted = decipher.update(encryptedText, 'hex', 'utf8');\n decrypted += decipher.final('utf8');\n\n return decrypted;\n}",
"type": "string"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [
-80,
192
],
"id": "cb79b374-2a81-401f-861d-7854e0e54879",
"name": "js_functions",
"alwaysOutputData": false,
"executeOnce": true
},
{
"parameters": {
"jsCode": "const { encrypt, decrypt } = require('/home/node/.n8n/crypto_utils.js');\n\nconst key = '12345678901234567890123456789012';\nconst text = \"Geheimnis\";\n\nreturn {\n result: encrypt(text, key)\n};"
},
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
112,
16
],
"id": "cbdb7f21-f770-4085-8524-08bd1ca8ba98",
"name": "Code in JavaScript"
}
],
"connections": {
"When clicking Execute workflow": {
"main": [
[
{
"node": "js_functions",
"type": "main",
"index": 0
}
]
]
},
"js_functions": {
"main": [
[
{
"node": "Code in JavaScript2",
"type": "main",
"index": 0
},
{
"node": "Code in JavaScript",
"type": "main",
"index": 0
}
]
]
},
"Code in JavaScript2": {
"main": [
[]
]
}
},
"settings": {
"executionOrder": "v1",
"binaryMode": "separate"
},
"staticData": null,
"meta": {
"templateCredsSetupCompleted": true
},
"pinData": {},
"versionId": "56cddc4b-446a-4212-8c91-e5e7ce2b3c47",
"activeVersionId": null,
"triggerCount": 0,
"shared": [
{
"updatedAt": "2026-04-04T19:28:29.279Z",
"createdAt": "2026-04-04T19:28:29.279Z",
"role": "workflow:owner",
"workflowId": "W2OEeYHl5e7PhC21",
"projectId": "cSAaWNJydnksD5EB"
}
],
"activeVersion": null,
"tags": []
}