4cm / crypto
PHP的两种加密方法。
Requires
- php: >=7.2.0
- ext-sodium: *
This package is auto-updated.
Last update: 2024-09-29 05:28:41 UTC
README
PHP的两种加密方法/类。
需求
此函数需要您的服务器安装并启用PHP (7.2.0+),并且您已安装并启用了服务器上的sodium。
版本
2019年7月29日 - 版本 1.0.0
已发布。
安装
使用Composer
$ composer require 4cm/crypto
{ "require": { "4cm/crypto": "*" } }
不使用Composer
为什么您不使用composer?您可以直接下载php文件,将其上传到您的服务器,并像通常包含php文件一样包含该文件。
<?php require 'path/to/crypto.php';
密钥生成
对于您的网站/服务的每个用户,您应该在您的服务器上某个位置生成一个密钥(最好在子根目录中)。
如果您使用KMS,只需对本地路径进行必要的更改,以使用KMS API的路径。这可能是指您自己的本地KMS硬件或AWS、Google Cloud和其他KMS提供商提供的服务。
您应该在生成新密钥的调用中包含try/catch,以处理Exception
消息。
以下是一个示例,展示了如何处理您喜欢的任何方式下的Exception
错误消息。
try { // (new crypto($keyPath))->generateKey(); // } catch (Exception $e) { // die($e->getMessage()); // }
加密/解密函数变量
crypto
类有三个变量需要传递给加密和解密
$keyPath
= 用户加密密钥的路径,由(new crypto($keyPath))->generateKey();
生成并存储在您的服务器上的某个位置,最好是子根。$Content
= 您想要加密或解密的内容。e
或d
= 操作方向,要么是e
用于加密,要么是d
用于解密。
加密示例
以下示例将向您展示如何加密一条消息。
您应该在生成新密钥的调用中包含try/catch,以处理Exception
消息。
以下是一个示例,展示了如何处理您喜欢的任何方式下的Exception
错误消息。
// $keyPath = '/path/to/subrootfolder/userid.key'; $Content = 'This is a message that we want to encrypt'; // try { // $Content = (new crypto($keyPath, $Content, 'e'))->crypto(); // } catch (Exception $e) { // die('Encryption Error: ' . $e->getMessage()); // }
解密示例
以下示例将向您展示如何加密一条消息。
请注意,此示例中与之前不同的地方是方向变量传递的是'd'
而不是'e'
。
您应该在生成新密钥的调用中包含try/catch,以处理Exception
消息。
以下是一个示例,展示了如何处理您喜欢的任何方式下的Exception
错误消息。
// $keyPath = '/path/to/subrootfolder/kms/userid.key'; $EncryptedContent = 'XyjE80p/QF72xwHx6HSNJt8WKxodx0nKhDaNeCe0koxvQ=='; // just an example of encrypted content // try { // $Content = (new crypto($keyPath, $EncryptedContent, 'd'))->crypto(); // } catch (Exception $e) { // die('Decryption Error: ' . $e->getMessage()); // }
安全联系信息
要报告安全漏洞,请参考我们composer.json文件中的支持电子邮件地址。
我们将协调任何必要的安全解决方案,并在请求的情况下提供披露。
许可
MIT许可(MIT)。有关更多信息,请参阅许可文件。