>  기사  >  백엔드 개발  >  PHP에서 서명 및 확인

PHP에서 서명 및 확인

WBOY
WBOY원래의
2023-05-23 16:10:521701검색

인터넷 기술이 발전함에 따라 보안, 특히 인터넷 애플리케이션에서 전송되는 데이터의 보안이 점점 더 중요한 문제가 되었습니다. 서명 및 서명 확인 기술은 데이터 보안을 보장하는 중요한 수단이 되었습니다. PHP는 널리 사용되는 인터넷 프로그래밍 언어로서 서명 및 서명 확인을 위한 관련 기능도 제공합니다. 이 기사에서는 PHP의 서명 및 서명 확인을 소개합니다.

1. 서명과 서명 검증의 개념

서명이란 디지털 서명 알고리즘을 기반으로 특정 문자열을 생성하기 위해 데이터를 암호화하는 것을 말합니다. 이 문자열은 데이터의 무결성과 신뢰성을 확인하고 데이터가 변조되거나 위조되는 것을 방지하는 데 사용될 수 있습니다. 서명 확인은 서명된 문자열을 해독하여 해독된 데이터의 신뢰성과 무결성을 확인하는 것을 의미합니다.

2. PHP의 서명 함수

PHP에서 서명 함수에는 주로 hash_hmac 및 openssl_sign 함수가 포함됩니다.

  1. hash_hmac 함수

hmac 함수는 PHP와 함께 제공되는 해시 암호화 함수이며 MD5, SHA-1, SHA-256 등과 같은 여러 해시 알고리즘을 지원합니다. 이 함수를 사용하여 서명하는 단계는 다음과 같습니다.

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

위 코드에서 $algorithm은 알고리즘 유형을 지정하고, $key는 서명 키, $data는 서명할 데이터, $signature는 획득한 문자열입니다. 서명 후.

  1. openssl_sign 함수

openssl_sign 함수는 여러 암호화 알고리즘을 지원하는 PHP의 openssl 확장 함수입니다. 이 함수를 서명에 사용하는 단계는 다음과 같습니다.

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

위 코드에서 $algorithm은 알고리즘 유형을 지정합니다. , $key는 서명 키, $data는 서명할 데이터, $signature는 서명 후 얻은 문자열입니다.

3. PHP의 서명 확인 기능

PHP에서 서명 확인 기능에는 주로 hash_hmac 및 openssl_verify 기능이 포함됩니다.

  1. hash_hmac 함수

hash_hmac 함수를 사용하여 서명한 데이터의 경우 이를 서명 검증에 사용하는 단계는 다음과 같습니다.

$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 "验签失败!";
}

위 코드에서 먼저 hash_hmac 함수를 사용하여 데이터에 서명하여 서명 문자열을 얻습니다. . 그런 다음 hash_equals 함수를 사용하여 서명 결과가 동일한지 확인한 후 서명 검증에 성공했는지 확인합니다.

  1. openssl_verify 함수

openssl_sign 함수를 사용하여 서명된 데이터의 경우 서명 확인에 사용하는 단계는 다음과 같습니다.

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

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

위 코드에서 먼저 openssl_sign 함수를 사용하여 데이터에 서명하여 서명 문자열을 가져옵니다. . 그런 다음 openssl_verify 함수를 사용하여 서명 결과가 올바른지 확인한 후 서명 검증에 성공했는지 확인합니다.

4. 요약

본 글의 소개를 통해 PHP의 서명 및 서명 검증에 대한 기본 개념과 관련 기능의 사용법을 배웠습니다. 실제 인터넷 애플리케이션에서 서명 및 서명 확인 기술은 데이터 보안을 보장하는 중요한 수단이 되었습니다. PHP의 서명 및 서명 확인 기술에 익숙해지면 데이터 보안을 더욱 효과적으로 보장할 수 있습니다.

위 내용은 PHP에서 서명 및 확인의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.