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的最早版本。

序号函数描述
版本
1openssl_pkey_new()返回具有新的私钥和公钥对的资源标识符5.0.0
2openssl_pkey_get_private()返回私钥5.0.0
3openssl_pkey_get_public()返回公钥5.0.0
4openssl_pkey_export_to_file()将密钥导出到文件5.0.0
5openssl_private_encrypt()用私钥加密数据5.0.0
6openssl_public_encrypt()

用公钥加密数据

5.0.0
7openssl_public_decrypt()用公钥解密数据5.0.0
8openssl_private_decrypt()用私钥解密数据5.0.0