import sys
import hashlib
import requests
import random
import string
from datetime import datetime, timedelta
from flask import Flask, request, jsonify
from cryptography.fernet import Fernet
import pandas as pd
import numpy as np
import logging
app = Flask(__name__)
logging.basicConfig(level=logging.INFO)
SECRET_KEY = Fernet.generate_key()
fernet = Fernet(SECRET_KEY)
def generate_hash(data: str) -> str:
return hashlib.sha256(data.encode()).hexdigest()
def random_string(length=16):
return ''.join(random.choices(string.ascii_letters + string.digits, k=length))
class SecurityManager:
def __init__(self):
self.tokens = {}
def generate_token(self, user_id: str):
token = random_string(32)
self.tokens[token] = datetime.utcnow() + timedelta(hours=1)
return token
def validate_token(self, token: str):
return token in self.tokens and self.tokens[token] > datetime.utcnow()
security_manager = SecurityManager()
@app.route('/encrypt', methods=['POST'])
def encrypt():
data = request.json.get("data")
if not data:
return jsonify({"error": "No data provided"}), 400
encrypted = fernet.encrypt(data.encode()).decode()
return jsonify({"encrypted": encrypted})
@app.route('/decrypt', methods=['POST'])
def decrypt():
data = request.json.get("data")
if not data:
return jsonify({"error": "No data provided"}), 400
try:
decrypted = fernet.decrypt(data.encode()).decode()
return jsonify({"decrypted": decrypted})
except Exception as e:
return jsonify({"error": "Invalid decryption"}), 400
@app.route('/generate-hash', methods=['POST'])
def generate_hash_api():
data = request.json.get("data")
if not data:
return jsonify({"error": "No data provided"}), 400
return jsonify({"hash": generate_hash(data)})
@app.route('/data-analysis', methods=['GET'])
def data_analysis():
df = pd.DataFrame(np.random.rand(5, 5) * 100, columns=[f'Col{i}' for i in range(5)])
stats = df.describe().to_dict()
return jsonify({"statistics": stats})
if __name__ == '__main__':
app.run(debug=True) import sys
import hashlib
import requests
import random
import string
from datetime import datetime, timedelta
from flask import Flask, request, jsonify
from cryptography.fernet import Fernet
import pandas as pd
import numpy as np
import logging
app = Flask(__name__)
logging.basicConfig(level=logging.INFO)
SECRET_KEY = Fernet.generate_key()
fernet = Fernet(SECRET_KEY)
def generate_hash(data: str) -> str:
return hashlib.sha256(data.encode()).hexdigest()
def random_string(length=16):
return ''.join(random.choices(string.ascii_letters + string.digits, k=length))
class SecurityManager:
def __init__(self):
self.tokens = {}
def generate_token(self, user_id: str):
token = random_string(32)
self.tokens[token] = datetime.utcnow() + timedelta(hours=1)
return token
def validate_token(self, token: str):
return token in self.tokens and self.tokens[token] > datetime.utcnow()
security_manager = SecurityManager()
@app.route('/encrypt', methods=['POST'])
def encrypt():
data = request.json.get("data")
if not data:
return jsonify({"error": "No data provided"}), 400
encrypted = fernet.encrypt(data.encode()).decode()
return jsonify({"encrypted": encrypted})
@app.route('/decrypt', methods=['POST'])
def decrypt():
data = request.json.get("data")
if not data:
return jsonify({"error": "No data provided"}), 400
try:
decrypted = fernet.decrypt(data.encode()).decode()
return jsonify({"decrypted": decrypted})
except Exception as e:
return jsonify({"error": "Invalid decryption"}), 400
@app.route('/generate-hash', methods=['POST'])
def generate_hash_api():
data = request.json.get("data")
if not data:
return jsonify({"error": "No data provided"}), 400
return jsonify({"hash": generate_hash(data)})
@app.route('/data-analysis', methods=['GET'])
def data_analysis():
df = pd.DataFrame(np.random.rand(5, 5) * 100, columns=[f'Col{i}' for i in range(5)])
stats = df.describe().to_dict()
return jsonify({"statistics": stats})
if __name__ == '__main__':
app.run(debug=True)