eminmuhammadi/hidemydata

管理一组用于解密或加密文本的算法

2.0.0 2020-03-03 21:32 UTC

This package is auto-updated.

Last update: 2024-09-24 23:06:46 UTC


README

通过PHP管理一组用于解密或加密文本的算法

入门

以下说明将帮助您在本地机器上创建项目副本并运行,用于开发和测试目的。有关如何在生产系统中部署项目的说明,请参阅部署。

安装

您可以使用Composer进行安装

composer require eminmuhammadi/himemydata:dev-master

git clone https://github.com/eminmuhammadi/HideMyData.git

编码

include_once 'vendor/autoload.php';

名为eminmuhammadi\HideMyData\HideMyData的库类需要3个主要选项才能使用。需要使用非对称加密的个人必须选择密钥公钥。有几种算法分为两部分。

基本用法

加密

<?php

    require_once '../vendor/autoload.php';

    $text = 'HideMyData';
    $algo = 'aes256';

    try {
        $hider = (new eminmuhammadi\HideMyData\HideMyData('public-key', 'secret-key', $algo));

        $data = $hider->encrypt($text);
        print($data);
    }
    catch (Exception $e) {
        print($e);
    }

结果

KzdOWXBBWDNWSElWWm1VUkprenBFZz09

解密

<?php

    require_once '../vendor/autoload.php';

    $text = 'KzdOWXBBWDNWSElWWm1VUkprenBFZz09';
    $algo = 'aes256';

    try {
        $hider = (new eminmuhammadi\HideMyData\HideMyData('public-key', 'secret-key', $algo));

        $data = $hider->decrypt($text);
        print($data);
    }
    catch (Exception $e) {
        print($e);
    }

结果

HideMyData

加密|解密的时效限制

<?php

    require_once '../vendor/autoload.php';

    $text = 'HideMyData';
    $algo = 'aes256';

    try {
        $hider = (new eminmuhammadi\HideMyData\HideMyData('public-key', 'secret-key', $algo));

        /**
         * @example $date - {5 second} , { 5 minute } , { 5 day } , { 5 month } , { 5 year }
         */
        $data = $hider->encrypt($text,'1 minute');
        print($data);
    }
    catch (Exception $e) {
        print($e);
    }

结果

QTRmOGpVMml6MDNVVG5IWERDblgzcFpzSE5oRHNYalVuT1NBV2w1UXB2clEyY2hRalVZbTVkL2ZJUjQ4MjNCT0RVUUZDb0NodGFCOTU2czVtUzNBMVU3eFhRRlM4cnhINmliWmRBY0I0eVo2dXdiaHY1bWxBWC85Y1piWUV4Qys=
<?php

    require_once '../vendor/autoload.php';

    $text = 'QTRmOGpVMml6MDNVVG5IWERDblgzcFpzSE5oRHNYalVuT1NBV2w1UXB2clEyY2hRalVZbTVkL2ZJUjQ4MjNCT0RVUUZDb0NodGFCOTU2czVtUzNBMVU3eFhRRlM4cnhINmliWmRBY0I0eVo2dXdiaHY1bWxBWC85Y1piWUV4Qys=';
    $algo = 'aes256';

    try {
        $hider = (new eminmuhammadi\HideMyData\HideMyData('public-key', 'secret-key', $algo));

        /**
         * @example $date - {5 second} , { 5 minute } , { 5 day } , { 5 month } , { 5 year }
         */
        $data = $hider->decrypt($text,'1 minute');
        print($data);
    }

    /**
     *   Need to say error because of old data
     */
    catch (Exception $e) {
        print($e);
    }
Exception: eminmuhammadi\HideMyData\decrypt:: - time limited for this keys please update time or generate new one. in [root-repo]\src\hidemydata.php:122 Stack trace: #0 [root-repo]\service\date-decrypt.example.php(14): eminmuhammadi\HideMyData\HideMyData->decrypt('QTRmOGpVMml6MDN...', '1 minute') #1 {main}

注意!!! 由于旧的时效限制,您需要更新文本。时间新鲜时,它将类似于

HideMyData

密码列表

examples/ciphers.example.php

[
    {
        "0": "aes-128-cbc",
        "1": "aes-128-cbc-hmac-sha1",
        "2": "aes-128-cbc-hmac-sha256",
        "3": "aes-128-ccm",
        "4": "aes-128-cfb",
        "5": "aes-128-cfb1",
        "6": "aes-128-cfb8",
        "7": "aes-128-ctr",
        "9": "aes-128-gcm",
        "10": "aes-128-ocb",
        "11": "aes-128-ofb",
        "12": "aes-128-xts",
        "13": "aes-192-cbc",
        "14": "aes-192-ccm",
        "15": "aes-192-cfb",
        "16": "aes-192-cfb1",
        "17": "aes-192-cfb8",
        "18": "aes-192-ctr",
        "20": "aes-192-gcm",
        "21": "aes-192-ocb",
        "22": "aes-192-ofb",
        "23": "aes-256-cbc",
        "24": "aes-256-cbc-hmac-sha1",
        "25": "aes-256-cbc-hmac-sha256",
        "26": "aes-256-ccm",
        "27": "aes-256-cfb",
        "28": "aes-256-cfb1",
        "29": "aes-256-cfb8",
        "30": "aes-256-ctr",
        "32": "aes-256-gcm",
        "33": "aes-256-ocb",
        "34": "aes-256-ofb",
        "35": "aes-256-xts",
        "36": "aria-128-cbc",
        "37": "aria-128-ccm",
        "38": "aria-128-cfb",
        "39": "aria-128-cfb1",
        "40": "aria-128-cfb8",
        "41": "aria-128-ctr",
        "43": "aria-128-gcm",
        "44": "aria-128-ofb",
        "45": "aria-192-cbc",
        "46": "aria-192-ccm",
        "47": "aria-192-cfb",
        "48": "aria-192-cfb1",
        "49": "aria-192-cfb8",
        "50": "aria-192-ctr",
        "52": "aria-192-gcm",
        "53": "aria-192-ofb",
        "54": "aria-256-cbc",
        "55": "aria-256-ccm",
        "56": "aria-256-cfb",
        "57": "aria-256-cfb1",
        "58": "aria-256-cfb8",
        "59": "aria-256-ctr",
        "61": "aria-256-gcm",
        "62": "aria-256-ofb",
        "63": "bf-cbc",
        "64": "bf-cfb",
        "66": "bf-ofb",
        "67": "camellia-128-cbc",
        "68": "camellia-128-cfb",
        "69": "camellia-128-cfb1",
        "70": "camellia-128-cfb8",
        "71": "camellia-128-ctr",
        "73": "camellia-128-ofb",
        "74": "camellia-192-cbc",
        "75": "camellia-192-cfb",
        "76": "camellia-192-cfb1",
        "77": "camellia-192-cfb8",
        "78": "camellia-192-ctr",
        "80": "camellia-192-ofb",
        "81": "camellia-256-cbc",
        "82": "camellia-256-cfb",
        "83": "camellia-256-cfb1",
        "84": "camellia-256-cfb8",
        "85": "camellia-256-ctr",
        "87": "camellia-256-ofb",
        "88": "cast5-cbc",
        "89": "cast5-cfb",
        "91": "cast5-ofb",
        "92": "chacha20",
        "93": "chacha20-poly1305",
        "111": "id-aes128-CCM",
        "112": "id-aes128-GCM",
        "113": "id-aes128-wrap",
        "114": "id-aes128-wrap-pad",
        "115": "id-aes192-CCM",
        "116": "id-aes192-GCM",
        "117": "id-aes192-wrap",
        "118": "id-aes192-wrap-pad",
        "119": "id-aes256-CCM",
        "120": "id-aes256-GCM",
        "121": "id-aes256-wrap",
        "122": "id-aes256-wrap-pad",
        "124": "idea-cbc",
        "125": "idea-cfb",
        "127": "idea-ofb",
        "137": "seed-cbc",
        "138": "seed-cfb",
        "140": "seed-ofb",
        "141": "sm4-cbc",
        "142": "sm4-cfb",
        "143": "sm4-ctr",
        "145": "sm4-ofb"
    },
    {
        "36": "aes128",
        "37": "aes128-wrap",
        "38": "aes192",
        "39": "aes192-wrap",
        "40": "aes256",
        "41": "aes256-wrap",
        "69": "aria128",
        "70": "aria192",
        "71": "aria256",
        "72": "bf",
        "77": "blowfish",
        "99": "camellia128",
        "100": "camellia192",
        "101": "camellia256",
        "102": "cast",
        "103": "cast-cbc",
        "146": "idea",
        "164": "seed",
        "169": "sm4"
    }
]

测试

composer run-scripts test

变更日志

  • v2.0.1

    • 发布Composer包
  • v2.0.0

  • v1.3.1

    • 添加了数组模式。
    • 修复了一些错误。
  • v1.3.0

    • 添加了测试用例test/
    • 修复了一些错误。
  • v1.2.0

    • 删除了PWA。在eminmuhammadi/create-hidemyass创建了新的存储库。
    • 添加了密钥限制。现在您可以为密钥验证使用时间限制。
    • examples/添加了新示例
    • README已更改。
  • v1.1.1

    • 生成文档块。
    • 创建了测试的新目录

作者

请参阅参与此项目的贡献者名单。

许可

本项目采用MIT许可协议 - 有关详细信息,请参阅LICENSE文件