PHP - OpenSSL 函数


什么是 OpenSSL?

OpenSSL 是一个免费的开源模块,旨在处理通过计算机网络进行的通信。OpenSSL 是传输层安全性 (TLS) 和安全套接字层 (SSL) 协议的工具。

什么是 SSL 证书?

网站使用安全套接字层,即 SSL。SSL 证书负责使用加密来保护两台计算机之间的数据。涉及的两台计算机可以是客户端和服务器之间的数据共享。

当您共享密码、信用卡详细信息、家庭住址、社会安全号码等数据时,它必须受到保护,SSL 证书也负责保护这些数据。SSL 证书确保对所涉及的两台计算机的身份进行身份验证,以实现安全连接。

PHP 中的 OpenSSL 安装

OpenSSL 模块默认添加到 PHP 中。可以通过删除 php.ini 扩展开头 ;extension=php_openssl.dll ( ; ) 添加。之后,重新启动 apache 并确认更改是否反映出来,将以下代码保存为 .php 并在浏览器中执行 .php


<?php
   phpinfo();
?>

您应该会看到浏览器中启用了 openssl,如下所示:

openssl

OpenSSL 配置

openssl.cnf 是配置文件,具有 openssl 工作所需的所有默认配置。要执行 openssl,首先是 php 会尝试找到配置文件。要获得相同的结果,您必须将 php 文件夹添加到环境变量中。

如果您是 Windows 用户,以下是为 php 文件夹设置环境变量的步骤:

  • 1. 右键单击我的电脑,然后转到属性。
  • 2. 转到高级系统设置。
  • 3. 单击“环境变量”按钮。
  • 4. 编辑 path 变量,然后单击 Edit 按钮。
  • 5. 现在在末尾添加 Php 文件夹路径。我正在使用 xampp,所以我的 php 文件夹是 C:\xampp\php;
  • 6.完成后,单击“确定”按钮。
  • 7.现在打开命令提示符并输入命令:openssl version -a
C:\Windows\system32>openssl version -a
OpenSSL 1.0.2l  25 May 2017
built on: reproducible build, date unspecified
platform: mingw64
options:  bn(64,64) rc4(16x,int) des(idx,cisc,2,long) idea(int) blowfish(idx)
compiler: x86_64-w64-mingw32-gcc -I. -I.. -I../include  -D_WINDLL -DOPENSSL_PIC
-DOPENSSL_THREADS -D_MT -DDSO_WIN32 -static-libgcc -DL_ENDIAN -O3 -Wall -DWIN32_
LEAN_AND_MEAN -DUNICODE -D_UNICODE -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DO
PENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSH
A512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM
 -DECP_NISTZ256_ASM
OPENSSLDIR: "/etc/ssl"

现在 php 将能够找到 openssl.cnf 配置文件。

OpenSSL 函数

下表列出了与 PHP OpenSSL 相关的所有函数。php - 表示支持该函数的 PHP 最早版本。

函数 描述 php
openssl_pkey_new() 返回具有新的私有密钥和公钥对的资源标识符 5.0.0
openssl_pkey_get_private() 返回私钥 5.0.0
openssl_pkey_get_public() 返回公钥 5.0.0
openssl_​pkey_​export_​to_​file() 将密钥导出到文件 5.0.0
openssl_private_encrypt() 使用私有密钥加密数据 5.0.0
openssl_public_encrypt() 使用公钥加密数据 5.0.0
openssl_public_decrypt() 使用公钥解密数据 5.0.0
openssl_private_decrypt() 使用私钥解密数据 5.0.0