#!/usr/bin/env python3 """ Script de Verificação do Hash do Sistema VICK AI Este script verifica se o certificado no HuggingFace é autêntico """ import hashlib import json import sys # Hash oficial registrado HASH_OFICIAL = "196660c17a32fdc82764f738bcb3b8cc6f93bc7df942977ca9a8fc0a5e6c3e73" def calcular_hash(arquivo_json): """Calcula hash SHA-256 do arquivo JSON""" try: with open(arquivo_json, 'r', encoding='utf-8') as f: conteudo = f.read() hash_calculado = hashlib.sha256(conteudo.encode('utf-8')).hexdigest() return hash_calculado except Exception as e: print(f"❌ Erro ao calcular hash: {e}") return None def verificar_componentes(arquivo_json): """Verifica componentes do fingerprint""" try: with open(arquivo_json, 'r', encoding='utf-8') as f: data = json.load(f) print("\n📊 Informações do Certificado:") print(f" Sistema: {data.get('system')}") print(f" Versão: {data.get('version')}") print(f" Criador: {data.get('creator')}") print(f" Timestamp: {data.get('timestamp')}") total_components = data.get('metadata', {}).get('total_components', 0) print(f"\n📁 Total de Componentes: {total_components}") print("\n🧬 Fingerprint do Modelo LLM:") llm_fp = data.get('component_details', {}).get('00_llm_fingerprint', {}) for key, value in llm_fp.items(): print(f" • {key}: {value}") return True except Exception as e: print(f"❌ Erro ao ler componentes: {e}") return False def main(): print("="*80) print("🔐 VERIFICADOR DE HASH - SISTEMA VICK AI") print("="*80) arquivo = "vick_fingerprint.json" print(f"\n📄 Arquivo: {arquivo}") print(f"🎯 Hash Oficial: {HASH_OFICIAL}") # Calcula hash do arquivo print(f"\n⏳ Calculando hash do arquivo...") hash_calculado = calcular_hash(arquivo) if not hash_calculado: print("\n❌ FALHA NA VERIFICAÇÃO") sys.exit(1) print(f"✓ Hash Calculado: {hash_calculado}") # Compara hashes print(f"\n🔍 Comparando hashes...") if hash_calculado == HASH_OFICIAL: print("\n" + "="*80) print("✅ CERTIFICADO AUTÊNTICO!") print("="*80) print("\nO hash calculado corresponde ao hash oficial registrado.") print("Este certificado é genuíno e não foi alterado desde o registro.") # Mostra componentes verificar_componentes(arquivo) print("\n" + "="*80) print("✓ Verificação concluída com sucesso") print("="*80) sys.exit(0) else: print("\n" + "="*80) print("❌ CERTIFICADO INVÁLIDO!") print("="*80) print("\n⚠️ ATENÇÃO: O hash não corresponde ao hash oficial.") print("Este arquivo pode ter sido modificado ou corrompido.") print("\nHash esperado:", HASH_OFICIAL) print("Hash calculado:", hash_calculado) print("\n" + "="*80) sys.exit(1) if __name__ == "__main__": main()