Referencia API
Descripción General
El calculador de hash MD5 proporciona una interfaz API RESTful completa que admite cálculo de texto, procesamiento de archivos y operaciones por lotes.
Información Básica
- URL Base:
https://api.example.com/md5
- Autenticación: Clave API
- Formato de Datos: JSON
- Codificación de Caracteres: UTF-8
Formato de Respuesta
Todas las respuestas de la API siguen un formato unificado:
{
"success": true,
"data": {
// Datos específicos
},
"message": "Operación exitosa",
"timestamp": "2024-01-20T10:30:00Z"
}
Cálculo MD5 de Texto
Calcular MD5 de Texto
Endpoint: POST /api/md5/text
Parámetros de Solicitud:
{
"text": "Contenido del texto a calcular",
"encoding": "utf8",
"outputFormat": "hex"
}
Descripción de Parámetros:
Parámetro | Tipo | Requerido | Descripción |
---|---|---|---|
text | string | Sí | Contenido del texto a calcular MD5 |
encoding | string | No | Codificación de caracteres, predeterminado utf8 |
outputFormat | string | No | Formato de salida, predeterminado hex |
Formatos de Codificación Soportados:
utf8
: Codificación UTF-8ascii
: Codificación ASCIIutf16
: Codificación UTF-16gbk
: Codificación GBK
Formatos de Salida Soportados:
hex
: Hexadecimal en minúsculashex-upper
: Hexadecimal en mayúsculasbase64
: Codificación Base64
Ejemplo de Respuesta:
{
"success": true,
"data": {
"text": "Hello, World!",
"hash": "65a8e27d8879283831b664bd8b7f0ad4",
"encoding": "utf8",
"outputFormat": "hex",
"length": 32
},
"message": "Cálculo exitoso",
"timestamp": "2024-01-20T10:30:00Z"
}
Cálculo de Texto por Lotes
Endpoint: POST /api/md5/text/batch
Parámetros de Solicitud:
{
"texts": ["Texto1", "Texto2", "Texto3"],
"encoding": "utf8",
"outputFormat": "hex"
}
Ejemplo de Respuesta:
{
"success": true,
"data": {
"results": [
{
"text": "Texto1",
"hash": "hash1",
"index": 0
},
{
"text": "Texto2",
"hash": "hash2",
"index": 1
},
{
"text": "Texto3",
"hash": "hash3",
"index": 2
}
],
"total": 3,
"encoding": "utf8",
"outputFormat": "hex"
},
"message": "Cálculo por lotes exitoso",
"timestamp": "2024-01-20T10:30:00Z"
}
Cálculo MD5 de Archivo
Cálculo de Archivo Subido
Endpoint: POST /api/md5/file
Formato de Solicitud: multipart/form-data
Parámetros de Solicitud:
Parámetro | Tipo | Requerido | Descripción |
---|---|---|---|
file | file | Sí | Archivo a calcular |
outputFormat | string | No | Formato de salida, predeterminado hex |
Ejemplo de Respuesta:
{
"success": true,
"data": {
"filename": "example.txt",
"size": 1024,
"hash": "d41d8cd98f00b204e9800998ecf8427e",
"outputFormat": "hex",
"processingTime": 150
},
"message": "Cálculo de archivo exitoso",
"timestamp": "2024-01-20T10:30:00Z"
}
Cálculo de Archivos por Lotes
Endpoint: POST /api/md5/file/batch
Formato de Solicitud: multipart/form-data
Parámetros de Solicitud:
Parámetro | Tipo | Requerido | Descripción |
---|---|---|---|
files | file | Sí | Array de archivos a calcular |
outputFormat | string | No | Formato de salida, predeterminado hex |
Ejemplo de Respuesta:
{
"success": true,
"data": {
"results": [
{
"filename": "file1.txt",
"size": 1024,
"hash": "hash1",
"processingTime": 150
},
{
"filename": "file2.txt",
"size": 2048,
"hash": "hash2",
"processingTime": 200
}
],
"total": 2,
"totalSize": 3072,
"totalTime": 350
},
"message": "Cálculo de archivos por lotes exitoso",
"timestamp": "2024-01-20T10:30:00Z"
}
Verificación de Valor Hash
Verificar Valor Hash
Endpoint: POST /api/md5/verify
Parámetros de Solicitud:
{
"text": "Texto a verificar",
"expectedHash": "Valor hash esperado",
"encoding": "utf8"
}
Ejemplo de Respuesta:
{
"success": true,
"data": {
"text": "Hello, World!",
"expectedHash": "65a8e27d8879283831b664bd8b7f0ad4",
"calculatedHash": "65a8e27d8879283831b664bd8b7f0ad4",
"isValid": true,
"encoding": "utf8"
},
"message": "Verificación exitosa",
"timestamp": "2024-01-20T10:30:00Z"
}
Verificación de Integridad de Archivo
Endpoint: POST /api/md5/verify/file
Formato de Solicitud: multipart/form-data
Parámetros de Solicitud:
Parámetro | Tipo | Requerido | Descripción |
---|---|---|---|
file | file | Sí | Archivo a verificar |
expectedHash | string | Sí | Valor hash esperado |
Ejemplo de Respuesta:
{
"success": true,
"data": {
"filename": "example.txt",
"expectedHash": "d41d8cd98f00b204e9800998ecf8427e",
"calculatedHash": "d41d8cd98f00b204e9800998ecf8427e",
"isValid": true,
"size": 1024
},
"message": "Verificación de integridad de archivo exitosa",
"timestamp": "2024-01-20T10:30:00Z"
}
Manejo de Errores
Formato de Respuesta de Error
{
"success": false,
"error": {
"code": "ERROR_CODE",
"message": "Descripción del error",
"details": "Información detallada del error"
},
"timestamp": "2024-01-20T10:30:00Z"
}
Códigos de Error Comunes
Código de Error | Descripción | Código de Estado HTTP |
---|---|---|
INVALID_INPUT | Parámetros de entrada inválidos | 400 |
FILE_TOO_LARGE | Archivo demasiado grande | 413 |
UNSUPPORTED_ENCODING | Formato de codificación no soportado | 400 |
INVALID_HASH_FORMAT | Formato de hash inválido | 400 |
RATE_LIMIT_EXCEEDED | Límite de frecuencia de solicitud excedido | 429 |
INTERNAL_ERROR | Error interno del servidor | 500 |
Ejemplos de Uso
Ejemplo JavaScript
// Calcular MD5 de texto
const calculateTextMD5 = async (text) => {
const response = await fetch('/api/md5/text', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
Authorization: 'Bearer YOUR_API_KEY',
},
body: JSON.stringify({
text,
encoding: 'utf8',
outputFormat: 'hex',
}),
});
const result = await response.json();
return result.data.hash;
};
// Calcular MD5 de archivo
const calculateFileMD5 = async (file) => {
const formData = new FormData();
formData.append('file', file);
const response = await fetch('/api/md5/file', {
method: 'POST',
headers: {
Authorization: 'Bearer YOUR_API_KEY',
},
body: formData,
});
const result = await response.json();
return result.data.hash;
};
// Verificar valor hash
const verifyHash = async (text, expectedHash) => {
const response = await fetch('/api/md5/verify', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
Authorization: 'Bearer YOUR_API_KEY',
},
body: JSON.stringify({
text,
expectedHash,
encoding: 'utf8',
}),
});
const result = await response.json();
return result.data.isValid;
};
Ejemplo Python
import requests
import json
# Calcular MD5 de texto
def calculate_text_md5(text, api_key):
url = "https://api.example.com/md5/text"
headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {api_key}"
}
data = {
"text": text,
"encoding": "utf8",
"outputFormat": "hex"
}
response = requests.post(url, headers=headers, json=data)
result = response.json()
if result["success"]:
return result["data"]["hash"]
else:
raise Exception(result["error"]["message"])
# Calcular MD5 de archivo
def calculate_file_md5(file_path, api_key):
url = "https://api.example.com/md5/file"
headers = {
"Authorization": f"Bearer {api_key}"
}
with open(file_path, 'rb') as file:
files = {'file': file}
response = requests.post(url, headers=headers, files=files)
result = response.json()
if result["success"]:
return result["data"]["hash"]
else:
raise Exception(result["error"]["message"])
# Verificar valor hash
def verify_hash(text, expected_hash, api_key):
url = "https://api.example.com/md5/verify"
headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {api_key}"
}
data = {
"text": text,
"expectedHash": expected_hash,
"encoding": "utf8"
}
response = requests.post(url, headers=headers, json=data)
result = response.json()
if result["success"]:
return result["data"]["isValid"]
else:
raise Exception(result["error"]["message"])
Ejemplo cURL
# Calcular MD5 de texto
curl -X POST "https://api.example.com/md5/text" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"text": "Hello, World!",
"encoding": "utf8",
"outputFormat": "hex"
}'
# Calcular MD5 de archivo
curl -X POST "https://api.example.com/md5/file" \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "file=@example.txt"
# Verificar valor hash
curl -X POST "https://api.example.com/md5/verify" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"text": "Hello, World!",
"expectedHash": "65a8e27d8879283831b664bd8b7f0ad4",
"encoding": "utf8"
}'
Limitaciones
Límites de Solicitud
- Longitud de texto: Máximo 10MB
- Tamaño de archivo: Máximo 100MB
- Cantidad por lotes: Máximo 100 elementos
- Frecuencia de solicitud: Máximo 1000 solicitudes por minuto
Formatos Soportados
- Codificación de texto: UTF-8, ASCII, UTF-16, GBK
- Formato de salida: Hexadecimal (mayúsculas/minúsculas), Base64
- Tipos de archivo: Todos los tipos de archivo
Última Actualización: 20 de Enero de 2024