Référence API
Aperçu
Le calculateur de hash MD5 fournit une interface API RESTful complète supportant le calcul de texte, le traitement de fichiers et les opérations par lot.
Informations de Base
- URL de Base:
https://api.example.com/md5
- Authentification: Clé API
- Format de Données: JSON
- Encodage de Caractères: UTF-8
Format de Réponse
Toutes les réponses API suivent un format unifié:
{
"success": true,
"data": {
// Données spécifiques
},
"message": "Opération réussie",
"timestamp": "2024-01-20T10:30:00Z"
}
Calcul MD5 de Texte
Calculer MD5 de Texte
Point de Terminaison: POST /api/md5/text
Paramètres de Requête:
{
"text": "Contenu du texte à calculer",
"encoding": "utf8",
"outputFormat": "hex"
}
Description des Paramètres:
Paramètre | Type | Requis | Description |
---|---|---|---|
text | string | Oui | Contenu du texte à calculer MD5 |
encoding | string | Non | Encodage de caractères, défaut utf8 |
outputFormat | string | Non | Format de sortie, défaut hex |
Formats d'Encodage Supportés:
utf8
: Encodage UTF-8ascii
: Encodage ASCIIutf16
: Encodage UTF-16gbk
: Encodage GBK
Formats de Sortie Supportés:
hex
: Hexadécimal en minusculeshex-upper
: Hexadécimal en majusculesbase64
: Encodage Base64
Exemple de Réponse:
{
"success": true,
"data": {
"text": "Hello, World!",
"hash": "65a8e27d8879283831b664bd8b7f0ad4",
"encoding": "utf8",
"outputFormat": "hex",
"length": 32
},
"message": "Calcul réussi",
"timestamp": "2024-01-20T10:30:00Z"
}
Calcul de Texte par Lot
Point de Terminaison: POST /api/md5/text/batch
Paramètres de Requête:
{
"texts": ["Texte1", "Texte2", "Texte3"],
"encoding": "utf8",
"outputFormat": "hex"
}
Exemple de Réponse:
{
"success": true,
"data": {
"results": [
{
"text": "Texte1",
"hash": "hash1",
"index": 0
},
{
"text": "Texte2",
"hash": "hash2",
"index": 1
},
{
"text": "Texte3",
"hash": "hash3",
"index": 2
}
],
"total": 3,
"encoding": "utf8",
"outputFormat": "hex"
},
"message": "Calcul par lot réussi",
"timestamp": "2024-01-20T10:30:00Z"
}
Calcul MD5 de Fichier
Calcul de Fichier Téléchargé
Point de Terminaison: POST /api/md5/file
Format de Requête: multipart/form-data
Paramètres de Requête:
Paramètre | Type | Requis | Description |
---|---|---|---|
file | file | Oui | Fichier à calculer |
outputFormat | string | Non | Format de sortie, défaut hex |
Exemple de Réponse:
{
"success": true,
"data": {
"filename": "example.txt",
"size": 1024,
"hash": "d41d8cd98f00b204e9800998ecf8427e",
"outputFormat": "hex",
"processingTime": 150
},
"message": "Calcul de fichier réussi",
"timestamp": "2024-01-20T10:30:00Z"
}
Calcul de Fichiers par Lot
Point de Terminaison: POST /api/md5/file/batch
Format de Requête: multipart/form-data
Paramètres de Requête:
Paramètre | Type | Requis | Description |
---|---|---|---|
files | file | Oui | Tableau de fichiers à calculer |
outputFormat | string | Non | Format de sortie, défaut hex |
Exemple de Réponse:
{
"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": "Calcul de fichiers par lot réussi",
"timestamp": "2024-01-20T10:30:00Z"
}
Vérification de Valeur de Hash
Vérifier Valeur de Hash
Point de Terminaison: POST /api/md5/verify
Paramètres de Requête:
{
"text": "Texte à vérifier",
"expectedHash": "Valeur de hash attendue",
"encoding": "utf8"
}
Exemple de Réponse:
{
"success": true,
"data": {
"text": "Hello, World!",
"expectedHash": "65a8e27d8879283831b664bd8b7f0ad4",
"calculatedHash": "65a8e27d8879283831b664bd8b7f0ad4",
"isValid": true,
"encoding": "utf8"
},
"message": "Vérification réussie",
"timestamp": "2024-01-20T10:30:00Z"
}
Vérification d'Intégrité de Fichier
Point de Terminaison: POST /api/md5/verify/file
Format de Requête: multipart/form-data
Paramètres de Requête:
Paramètre | Type | Requis | Description |
---|---|---|---|
file | file | Oui | Fichier à vérifier |
expectedHash | string | Oui | Valeur de hash attendue |
Exemple de Réponse:
{
"success": true,
"data": {
"filename": "example.txt",
"expectedHash": "d41d8cd98f00b204e9800998ecf8427e",
"calculatedHash": "d41d8cd98f00b204e9800998ecf8427e",
"isValid": true,
"size": 1024
},
"message": "Vérification d'intégrité de fichier réussie",
"timestamp": "2024-01-20T10:30:00Z"
}
Gestion des Erreurs
Format de Réponse d'Erreur
{
"success": false,
"error": {
"code": "ERROR_CODE",
"message": "Description de l'erreur",
"details": "Informations détaillées sur l'erreur"
},
"timestamp": "2024-01-20T10:30:00Z"
}
Codes d'Erreur Courants
Code d'Erreur | Description | Code de Statut HTTP |
---|---|---|
INVALID_INPUT | Paramètres d'entrée invalides | 400 |
FILE_TOO_LARGE | Fichier trop volumineux | 413 |
UNSUPPORTED_ENCODING | Format d'encodage non supporté | 400 |
INVALID_HASH_FORMAT | Format de hash invalide | 400 |
RATE_LIMIT_EXCEEDED | Limite de fréquence de requête dépassée | 429 |
INTERNAL_ERROR | Erreur interne du serveur | 500 |
Exemples d'Utilisation
Exemple JavaScript
// Calculer MD5 de texte
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;
};
// Calculer MD5 de fichier
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;
};
// Vérifier valeur de 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;
};
Exemple Python
import requests
import json
# Calculer MD5 de texte
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"])
# Calculer MD5 de fichier
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"])
# Vérifier valeur de 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"])
Exemple cURL
# Calculer MD5 de texte
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"
}'
# Calculer MD5 de fichier
curl -X POST "https://api.example.com/md5/file" \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "file=@example.txt"
# Vérifier valeur de 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"
}'
Limitations
Limites de Requête
- Longueur de texte: Maximum 10MB
- Taille de fichier: Maximum 100MB
- Quantité par lot: Maximum 100 éléments
- Fréquence de requête: Maximum 1000 requêtes par minute
Formats Supportés
- Encodage de texte: UTF-8, ASCII, UTF-16, GBK
- Format de sortie: Hexadécimal (majuscules/minuscules), Base64
- Types de fichiers: Tous les types de fichiers
Dernière Mise à Jour: 20 Janvier 2024