ageid/encryption-helper

AgeID 对称加密助手

2.1 2019-05-08 14:13 UTC

This package is not auto-updated.

Last update: 2024-09-20 21:07:04 UTC


README

使用嵌入随机盐密钥的AES256加密和解密助手,适用于AgeID。

实现基于Laravel Encrypter。

要求:PHP 7

为了与PHP 5.6兼容,请安装random_bytes()的PHP 5.x polyfill

composer require paragonie/random_compat

变更日志

列出发行版本和变更,最新的版本在最上面

  • v2.1
    • 修复了与PHP 5.6的兼容性问题
    • 移除了导致熵损失的盐的utf8转换
  • v2.0 [!] 应用于v2端点和转发 [!]
    • EncryptionHelper中的迭代次数通过在实例化时设置版本号来设置;如果没有设置,它将选择最新版本
    • 仅允许至少16字节的盐
    • 默认将迭代次数减少到1024
  • [首次发布]

使用方法

安装

使用composer安装包

composer require ageid/encryption-helper

或下载包并将src/*文件包含在您的项目中。

加密

默认情况下,它使用随机盐密钥,但可以在构造函数中指定。

示例

    use AgeId\EncryptionHelper;


    $password = "8d6ea4d3e6f8c4f8641516baa5e42b85";
    
    $text = "text clear";
    
    $encrypter = new EncryptionHelper($password);
    $encrypted = $encrypter->encrypt($text);

    echo $encrypted;

解密

示例

    use AgeId\EncryptionHelper;

    $password = "8d6ea4d3e6f8c4f8641516baa5e42b85";
    
    
    $hash = "eyJzYWx0IjoiVWluUHJUOFwvZVQ5REZUZ1wvUHo4NyIsImVuY3J5cHRlZCI6IjJxbzgzcmRsMWNWQ0VJTHVjazBJSFE9PSIsIm1hYyI6IjJmYWM3NWY4ZTk4NmI1MGYwMzgwYTcxYTgwMTA3NmNiM2Y3Y2MwYzBkZDNkNWIwOGYxNTI2ZTkwYTRlMTdkZjgifQ==";
    
    $decryptor = new EncryptionHelper($password);
    $decrypted = $decryptor->decrypt($hash);

    echo $decrypted;

测试

为了运行测试,请在包文件夹中执行

composer install
phpunit