Files
Tools/backend/tools/base64tool.py
T
Nirodan 7f9c5c874a Add 6 new tools: Hasher, Base64, JWT Decoder, Password Gen, Timestamp, Text Diff
- backend/tools/hasher.py: POST /api/hash/sha256 and /api/hash/bcrypt (bcrypt added to requirements)
- backend/tools/base64tool.py: POST /api/base64/encode and /api/base64/decode
- backend/tools/jwtdecoder.py: POST /api/jwt/decode (signature verification disabled)
- backend/tools/passwordgen.py: POST /api/password/generate with charset and length options
- backend/tools/timestamp.py: POST /api/timestamp/convert (unix<->date, ISO 8601 + German format)
- backend/tools/textdiff.py: POST /api/text/diff returning structured added/removed/unchanged lines
- All blueprints registered in app.py and tools/__init__.py
- React components with copy button, dark/light mode support via CSS variables
- ToolOverview rebuilt as card grid; App.jsx routes added for all tools

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-24 14:28:18 +02:00

39 lines
1.3 KiB
Python

from flask import Blueprint, request, jsonify
import base64
from util.logger import logger
from auth.token import verify_token
base64_blueprint = Blueprint('base64_tool', __name__)
@base64_blueprint.route('/api/base64/encode', methods=['POST'])
def encode():
user = verify_token()
if not user:
return jsonify({"message": "Nicht autorisiert"}), 401
try:
data = request.get_json()
text = data.get("text", "")
result = base64.b64encode(text.encode()).decode()
logger.info(f"Base64 kodiert von {user['username']}")
return jsonify({"result": result})
except Exception as e:
logger.error(f"Fehler Base64 encode: {e}")
return jsonify({"message": "Fehler beim Kodieren"}), 500
@base64_blueprint.route('/api/base64/decode', methods=['POST'])
def decode():
user = verify_token()
if not user:
return jsonify({"message": "Nicht autorisiert"}), 401
try:
data = request.get_json()
text = data.get("text", "").strip()
result = base64.b64decode(text.encode()).decode('utf-8')
logger.info(f"Base64 dekodiert von {user['username']}")
return jsonify({"result": result})
except Exception as e:
logger.error(f"Fehler Base64 decode: {e}")
return jsonify({"message": "Ungültiger Base64-Input"}), 400