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,如下所示: 开放式SSL

OpenSSL 配置

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

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

1. 右键单击​​“我的电脑”并转到“属性”。

2. 进入高级系统设置。

3. 单击“环境变量”按钮。

4. 编辑路径变量并单击“编辑”按钮。

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版本。
先生编号 功能说明 版本
1 openssl_pkey_new()

返回具有新私钥和公钥对的资源标识符

5.0.0
2 openssl_pkey_get_private()

返回私钥

5.0.0
3 openssl_pkey_get_public()

返回公钥

5.0.0
4 openssl_​pkey_​export_​to_​file()

将密钥导出到文件

5.0.0
5 openssl_private_encrypt()

使用私钥加密数据

5.0.0
6 openssl_public_encrypt()

使用公钥加密数据

5.0.0
7 openssl_public_decrypt()

使用公钥解密数据

5.0.0
8 openssl_private_decrypt()

使用私钥解密数据

5.0.0
php_function_reference.htm