rasalas/easycrypt

将数组数据或字符串转换为安全的(可选)签名加密字符串,并可以再次解密并确保数据相同

v1.0.0 2021-08-29 16:35 UTC

This package is auto-updated.

Last update: 2024-09-04 16:24:39 UTC


README

EasyCrypt可以帮助您通过简单的密码轻松加密数据。

这是用来做什么的?

它加密您可能想要附加到URL作为GET数据的数组数据或字符串。或者,您可能想将其放入隐藏的输入框。由您决定。

如果有人篡改了数据,您会注意到,因为它将返回false而不是数据(这可能会改变)。这也是$salt的作用所在。EasyCrypt对数据进行签名并检查数据是否未更改。

请勿使用此方法存储用户数据或其他敏感数据。

安装

rasa@home:~$ composer require rasalas/easycrypt

示例用法

<?php
// import
require __DIR__ . '/vendor/autoload.php'; // or include('vendor/rasalas/easycrypt/src/class.easycrypt.php');
$ez = new Rasalas\Tools\EasyCrypt('supersecurepassphrase', 'saltandpepper');

// test data
$data = ['user_id'=>'12','firstname'=>'John', 'lastname'=>'Doe'];

// encrypt
$crypt = $ez->encrypt($data);
 
// decrypt
$decrypted = $ez->decrypt($crypt);

// print the array in a human readable format
echo '<pre>' . json_encode($decrypted, JSON_PRETTY_PRINT) . '</pre>';

加密(216字节)

P9P9WtCGQYQu+Isn7uO0HAMx4Cg+NcFKGmB5Abg4vJD00+PQXmEvHBvycapbOLKZOYnHw0L2Omv/61/6NLWJbQKfjQLXlPykGWiTjwGpz1LD0pZTJla8euIbJHhFiu5RByqeF8Dh40I25Nwh3vGBdIbgffqgT8qIkbIqFQrif8BTzFy1mcLa5so/hWcyUx6T9d8Wrw7l7ifIL2MzReS0hA==

输出

{
    "user_id": "12",
    "firstname": "John",
    "lastname": "Doe"
}

URL安全使用

如果您想在URL或作为html-input值中使用它,您可能不喜欢像/这样的字符。所以只需使用URL_SAFE常量(true1也可以,但请坚持使用前者)。

这使得加密字符串更长。所以选择最好的。

::decrypt()可以在没有URL_SAFE参数的情况下解密URL安全的加密字符串,但必须先尝试解密数据;所以给它一个机会并使用它。😉

// encrypt
$crypt = $ez->encrypt($data, URL_SAFE);
 
// decrypt
$decrypted = $ez->decrypt($crypt, URL_SAFE);

加密(288字节,增加33%)

UDlQOVd0Q0dRWVF1K0lzbjd1TzBIQU14NENnK05jRktHbUI1QWJnNHZKRDAwK1BRWG1FdkhCdnljYXBiT0xLWk9Zbkh3MEwyT212LzYxLzZOTFdKYlFLZmpRTFhsUHlrR1dpVGp3R3B6MUxEMHBaVEpsYThldUliSkhoRml1NVJCeXFlRjhEaDQwSTI1TndoM3ZHQmRJYmdmZnFnVDhxSWtiSXFGUXJpZjhCVHpGeTFtY0xhNXNvL2hXY3lVeDZUOWQ4V3J3N2w3aWZJTDJNelJlUzBoQT09