rasalas / easycrypt
将数组数据或字符串转换为安全的(可选)签名加密字符串,并可以再次解密并确保数据相同
Requires
- php: >=5.3.0
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
常量(true
和1
也可以,但请坚持使用前者)。
这使得加密字符串更长。所以选择最好的。
::decrypt()
可以在没有URL_SAFE
参数的情况下解密URL安全的加密字符串,但必须先尝试解密数据;所以给它一个机会并使用它。😉
// encrypt $crypt = $ez->encrypt($data, URL_SAFE); // decrypt $decrypted = $ez->decrypt($crypt, URL_SAFE);
加密(288字节,增加33%)
UDlQOVd0Q0dRWVF1K0lzbjd1TzBIQU14NENnK05jRktHbUI1QWJnNHZKRDAwK1BRWG1FdkhCdnljYXBiT0xLWk9Zbkh3MEwyT212LzYxLzZOTFdKYlFLZmpRTFhsUHlrR1dpVGp3R3B6MUxEMHBaVEpsYThldUliSkhoRml1NVJCeXFlRjhEaDQwSTI1TndoM3ZHQmRJYmdmZnFnVDhxSWtiSXFGUXJpZjhCVHpGeTFtY0xhNXNvL2hXY3lVeDZUOWQ4V3J3N2w3aWZJTDJNelJlUzBoQT09