ホームページ  >  記事  >  バックエンド開発  >  PHP暗号化・復号化関数ライブラリの利用

PHP暗号化・復号化関数ライブラリの利用

王林
王林オリジナル
2023-06-16 10:49:401662ブラウズ

PHP 暗号化および復号化関数ライブラリの使用

ネットワーク セキュリティの問題がますます顕著になるにつれて、暗号化は最新のネットワーク テクノロジに不可欠な部分となっています。 PHP では、暗号化および復号化関数ライブラリによって、機密情報を処理し、データのセキュリティを確保するために使用できる多くの暗号化および復号化関数が提供されます。この記事では、PHPの暗号化・復号化関数ライブラリの使い方を紹介します。

1. 一般的に使用される暗号化および復号化関数

  1. md5 暗号化:

md5 暗号化は不可逆的な暗号化方式であり、パスワードの保存と検証によく使用されます。ファイルの整合性を確認します。使用方法は非常に簡単です。例:

$message = 'password';
$encrypted = md5($message);
  1. sha1 暗号化:

sha1 暗号化も不可逆暗号化方式であり、使用方法は md5 暗号化に似ています。例:

$message = 'password';
$encrypted = sha1($message);
  1. base64 暗号化:

base64 暗号化は、バイナリ データを ASCII 文字形式にエンコードするのに適した可逆暗号化方式です。例:

$message = 'password';
$encrypted = base64_encode($message);

base64 復号化には、base64_decode 関数を使用できます。例:

$encrypted = 'cGFzc3dvcmQ=';
$message = base64_decode($encrypted); 
  1. AES 暗号化:

AES 暗号化は、データの送信と保存を保護するために使用できる、可逆的な暗号化方式を提供します。使用方法は次のとおりです。

$message = 'password';
$key = 'mysecretkey';
$encrypted = openssl_encrypt($message, 'AES-256-CBC', $key);

このうち、「AES-256-CBC」が暗号化アルゴリズムで、$key がキーです。 AES 復号化には openssl_decrypt 関数を使用できます。例:

$encrypted = 'G0TzOGxUWSJ2XOGVTYaZDFtB26oTVPqsIiL0FmzNVcA=';
$key = 'mysecretkey';
$message = openssl_decrypt($encrypted, 'AES-256-CBC', $key);
  1. RSA 暗号化:

RSA 暗号化は、一般的なデータ暗号化シナリオに適した公開キー暗号化および秘密キー復号化方式を提供します。使用方法は次のとおりです。

最初に公開キーと秘密キーを生成します:

$privKey = openssl_pkey_new(array(
    'private_key_bits' => 1024,
    'private_key_type' => OPENSSL_KEYTYPE_RSA,
));

openssl_pkey_export($privKey, $pkey);

$pubKey = openssl_pkey_get_details($privKey);
$pubKey = $pubKey['key'];

次に、公開キーを使用して暗号化します:

$message = 'password';
$encrypted = '';
$success = openssl_public_encrypt($message, $encrypted, $pubKey);

RSA 復号化には openssl_private_decrypt を使用できます。関数。例:

$encrypted = '';
$message = '';
$success = openssl_private_decrypt($encrypted, $message, $privKey);

2. 暗号化および復号化モジュールの使用

実際のアプリケーションでは、データ セキュリティを処理するために完全な暗号化および復号化モジュールを使用する必要がある場合があります。 PHP には、mcrypt やsodium などの優れた暗号化および復号化モジュールがいくつかあります。以下に、これら 2 つのモジュールの使用方法を説明します。

  1. mcrypt モジュール:

mcrypt モジュールは、PHP で広く使用されている暗号化および復号化モジュールであり、さまざまな対称暗号化アルゴリズムと非対称暗号化アルゴリズムを提供します。使用方法は次のとおりです。

最初にキーと初期化ベクトルを設定します:

$key = 'mysecretkey';
$iv = mcrypt_create_iv(
mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_CBC),
MCRYPT_RAND);

次に、mcrypt_encrypt 関数を使用して暗号化します:

$message = 'password';
$encrypted = mcrypt_encrypt(
MCRYPT_RIJNDAEL_256,
$key,
$message,
MCRYPT_MODE_CBC,
$iv
);

mcrypt 復号化には mcrypt_decrypt 関数を使用できます。例:

$decrypted = mcrypt_decrypt(
MCRYPT_RIJNDAEL_256,
$key,
$encrypted,
MCRYPT_MODE_CBC,
$iv
);

$decrypted = rtrim($decrypted, "");
echo $decrypted;
  1. sodium モジュール:

sodium モジュールは、PHP7 以降で導入された暗号化および復号化モジュールであり、パスワード ハッシュ関数など、多くの高度な暗号化機能を提供します。デジタル署名アルゴリズムなど。使用法は次のとおりです:

最初にキーを生成します:

$key = sodium_crypto_secretbox_keygen();

次に、sodium_crypto_secretbox 関数を使用して暗号化します:

$message = 'password';
$nonce = random_bytes(SODIUM_CRYPTO_SECRETBOX_NONCEBYTES);
$encrypted = sodium_crypto_secretbox($message, $nonce, $key);

sodium の復号化には、sodium_crypto_secretbox_open 関数を使用できます。例:

$decrypted = sodium_crypto_secretbox_open($encrypted, $nonce, $key);

if ($decrypted === false) {
    throw new Exception('Failed to decrypt message');
}

echo $decrypted;

3. 概要

今日、ネットワーク セキュリティの重要性がますます高まる中、暗号化はデータ プライバシーを保護するために不可欠なテクノロジとなっています。 PHP には豊富な暗号化および復号化機能のライブラリとモジュールが用意されており、開発者はさまざまなニーズに応じて最適な暗号化方式を選択してデータのセキュリティを確保できます。この記事の導入により、読者は PHP 暗号化および復号化関数ライブラリの基本的な使用法と、一般的に使用される暗号化および復号化モジュールの使用方法を習得したと思います。

以上がPHP暗号化・復号化関数ライブラリの利用の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。