Maison  >  Article  >  développement back-end  >  Signature et vérification en PHP

Signature et vérification en PHP

WBOY
WBOYoriginal
2023-05-23 16:10:521753parcourir

Avec le développement de la technologie Internet, la sécurité est devenue un enjeu de plus en plus important, notamment la sécurité des données transmises dans les applications Internet. La technologie de signature et de vérification de signature est devenue un moyen important pour assurer la sécurité des données. PHP, en tant que langage de programmation Internet populaire, fournit également des fonctions connexes pour la signature et la vérification de signature en PHP.

1. Le concept de signature et de vérification de signature

La signature fait référence au cryptage des données pour générer une chaîne spécifique basée sur l'algorithme de signature numérique. Cette chaîne peut être utilisée pour vérifier l'intégrité et l'authenticité des données et empêcher leur falsification ou leur contrefaçon. La vérification de la signature fait référence au déchiffrement de la chaîne signée pour vérifier l'authenticité et l'intégrité des données déchiffrées.

2. Fonctions de signature en PHP

En PHP, les fonctions de signature incluent principalement les fonctions hash_hmac et openssl_sign.

  1. fonction hash_hmac

La fonction hmac est une fonction de cryptage de hachage fournie avec PHP et prend en charge plusieurs algorithmes de hachage, tels que MD5, SHA-1, SHA-256, etc. Les étapes pour utiliser cette fonction pour signer sont les suivantes :

$algorithm = "sha256"; // 签名算法
$key = "abcdefg"; // 签名的密钥
$data = "hello world"; // 待签名的数据
$signature = hash_hmac($algorithm, $data, $key); // 签名结果

Dans le code ci-dessus, $algorithm spécifie le type d'algorithme, $key est la clé de signature, $data est les données à signer et $signature est la chaîne obtenue. après avoir signé.

  1. fonction openssl_sign

La fonction openssl_sign est une fonction d'extension openssl en PHP qui prend en charge plusieurs algorithmes de cryptage. Les étapes pour utiliser cette fonction pour la signature sont les suivantes :

$algorithm = "sha256"; // 签名算法
$key = "abcdefg"; // 签名的密钥
$data = "hello world"; // 待签名的数据
openssl_sign($data, $signature, $key, $algorithm); // 签名结果

Dans le code ci-dessus, $algorithm spécifie le type d'algorithme, $key est la clé de signature, $data les données à signer et $signature est la chaîne obtenue après la signature.

3. Fonction de vérification de signature en PHP

En PHP, la fonction de vérification de signature comprend principalement les fonctions hash_hmac et openssl_verify.

  1. Fonction hash_hmac

Pour les données signées à l'aide de la fonction hash_hmac, les étapes pour l'utiliser pour la vérification de la signature sont les suivantes :

$algorithm = "sha256"; // 签名算法
$key = "abcdefg"; // 签名的密钥
$data = "hello world"; // 待签名的数据
$signature = hash_hmac($algorithm, $data, $key); // 签名结果

// 验证签名
if (hash_equals($signature, hash_hmac($algorithm, $data, $key))) {
    echo "验签成功!";
} else {
    echo "验签失败!";
}

Dans le code ci-dessus, utilisez d'abord la fonction hash_hmac pour signer les données afin d'obtenir la chaîne de signature . Utilisez ensuite la fonction hash_equals pour déterminer si les résultats de la signature sont les mêmes, puis déterminez si la vérification de la signature a réussi.

  1. Fonction openssl_verify

Pour les données signées à l'aide de la fonction openssl_sign, les étapes pour l'utiliser pour la vérification de la signature sont les suivantes :

$algorithm = "sha256"; // 签名算法
$key = "abcdefg"; // 签名的密钥
$data = "hello world"; // 待签名的数据
openssl_sign($data, $signature, $key, $algorithm); // 签名结果

// 验证签名
if (openssl_verify($data, $signature, $key, $algorithm) === 1) {
    echo "验签成功!";
} else {
    echo "验签失败!";
}

Dans le code ci-dessus, utilisez d'abord la fonction openssl_sign pour signer les données et obtenir la chaîne de signature . Utilisez ensuite la fonction openssl_verify pour déterminer si le résultat de la signature est correct, puis déterminez si la vérification de la signature a réussi.

4. Résumé

Grâce à l'introduction de cet article, nous avons découvert les concepts de base de la signature et de la vérification de signature en PHP et comment utiliser les fonctions associées. Dans les applications Internet actuelles, la technologie de signature et de vérification de signature est devenue un moyen important pour garantir la sécurité des données. Se familiariser avec la technologie de signature et de vérification de signature en PHP peut nous aider à mieux garantir la sécurité des données.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn