jtd420/laravel-pgp

为您的Laravel应用程序提供自动PGP加密/解密功能。完全可定制,并且与默认提供的脚手架无缝工作!

dev-main 2023-02-16 01:40 UTC

README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

重要通知

请注意,Laravel-PGP目前处于开发的早期阶段(版本0.0.1),可能不适合在生产环境中使用。

本包为Laravel用户提供了一种方便的方法,将PGP加密和解密功能添加到他们的项目中,同时还提供了用于聊天界面的默认脚手架。

然而,就像任何新的软件一样,它仍在测试和改进中。我们建议用户在使用前谨慎评估其适用性。

支持我们

未来的更新将包括支持此项目和其他项目的方法。

安装

您可以通过composer要求此包

composer require jtd420/laravel-pgp

安装包

要将包安装到您的Laravel应用程序中,您需要使用composer要求它,并运行以下Artisan命令

php artisan PGP::install blade

如果您喜欢深色主题,可以运行以下命令代替,并使用--dark选项

php artisan PGP::install blade --dark

您可以使用以下命令发布和运行迁移

php artisan vendor:publish --tag="PGP-migrations"
php artisan migrate

您可以使用以下命令发布配置文件

php artisan vendor:publish --tag="PGP-config"

这是发布配置文件的内容

return [
    /*
     * To prevent naming conflicts, this prefix will be added to all Laravel-PGP migrations.
     */
    'table_prefix' => 'pgp_',

    /*
     * Prefix added to rest of Laravel-PGP code, including routes. (Delete default to remove prefix)
     */
    'prefix' => 'PGP',

    /*
     * Choose the layout file to be extended by the views provided in the package.
     * The default layout file is set to 'PGP::layouts.app', but can be changed to match your preferred layout.
     */
    'layout_file' => 'PGP::layouts.app',
    /*
     * Choose the section name to be used in the views provided in the package.
     * The default section name is set to 'content', but it can be changed to match the section defined in your custom layout file.
     * This option is only applicable if you have set a custom 'layout_file' with a different '@section()' name.
     */

    'layout_section' => 'content',


    'uses_custom_auth' => true,

];

可选地,您可以使用以下命令发布视图

php artisan vendor:publish --tag="PGP-views"

使用方法

本包包括位于App/Http/Controllers/PGPController的PGPController类,供希望了解包内部工作原理并可能对其进行修改的用户使用。但是,如果您只需要默认加密消息功能,则无需进行任何额外设置。该包提供了合理的默认设置,易于使用,同时也为希望扩展它的用户提供了高度的可定制性。

要使用该类及其方法,必须将其导入控制器并实例化

use App\Http\Controllers\PGPController;
$controller = new PGPController();

生成密钥对

generate_keypair方法生成一个公钥/私钥对,并以加密的PGP密钥的形式返回公钥和私钥。

$keypair = $controller->generate_keypair('Name', 'email@email.com', 'RealSecurePassPhrase');
$public_key = $keypair['public_key'];
$private_key = $keypair['private_key'];

加密消息

encrypt方法接受一个公钥和一个消息,并返回一个加密的加密的PGP消息。

$encrypted_message = $controller->encrypt($public_key, 'secret message');

解密消息

decrypt方法接受一个私钥、加密的消息和密码短语,并返回解密后的消息或如果解密失败则返回JSON错误。

$decrypted_message = $controller->decrypt($private_key, $encrypted_message, 'RealSecurePassPhrase');

更多内容,请参阅这里!

测试

composer test

变更日志

有关最近更改的更多信息,请参阅变更日志

贡献

有关详细信息,请参阅贡献指南

安全漏洞

有关如何报告安全漏洞的详细信息,请参阅我们的安全策略

鸣谢

许可

MIT许可(MIT)。有关更多信息,请参阅许可文件