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. 编辑路径变量,然后单击“编辑”按钮。

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
广告