aarondfrancis / urlcrypt
Requires
- php: >=5.3.3
- ext-mcrypt: *
Requires (Dev)
- phpunit/phpunit: 4.3.*
This package is auto-updated.
Last update: 2022-02-01 12:45:14 UTC
README
是否曾想安全地在URL中传输(不太长)的任意二进制数据?URLcrypt使这变得简单。
要了解更多关于其工作原理的信息,请查看有关该主题的博客文章。
此类基于Thomas Fuchs的URLCrypt宝石。
URLcrypt使用256位AES对称加密来安全地加密数据,并编码和解码可以用于URL中的Base 32字符串。
这可以用于在从没有其他身份验证或持久化机制(如cookie)的地方访问Web应用程序时,安全地存储用户ID、下载过期日期和其他类似数据。
- 在电子邮件中加载您的Web应用程序生成的图像
- 带有过期日期的链接(类似于S3)
- 不持久化数据的微型应用程序
重要:一般而言,URL长度不应超过约2000个字符,因为超过此长度的URL在某些浏览器和一些(代理)服务器上无法工作。这限制了您应该使用URLcrypt存储的数据量。
警告:无法保证此类实际上安全且正常工作。请自行承担风险。
欢迎提交补丁;请包括测试!
要求
URLcrypt需要PHP >= 5.3.3以及mcrypt PHP扩展。
安装
您可以通过Composer使用composer require aarondfrancis/urlcrypt
安装URLcrypt,或者将以下内容添加到您的composer.json
文件中
{ "require": { "aarondfrancis/urlcrypt": "0.2.*" } }
用法
use Urlcrypt\Urlcrypt; // encoding without encryption. (don't use for anything sensitive) $encoded = Urlcrypt::encode("aaron"); // --> "mfqx2664" $decoded = Urlcrypt::decode("mfqx2664"); // --> "aaron" // encrypting and encoding Urlcrypt::$key = "bcb04b7e103a0cd8b54763051cef08bc55abe029fdebae5e1d417e2ffb2a00a3"; $encrypted = Urlcrypt::encrypt("aaron"); // --> "q0dmt61xkjyylA5mp3gm23khd1kg6w7pzxvd3nzcgb047zx8y581" $decrypted = Urlcrypt::decrypt("q0dmt61xkjyylA5mp3gm23khd1kg6w7pzxvd3nzcgb047zx8y581") // --> "aaron"
请注意,您的密钥必须是一个小写十六进制字符串。
为什么不是Base 64?
URLcrypt使用修改后的Base 32算法,不使用填充字符,并且不使用元音来避免生成字符串中的不良单词。
Base64会导致URL看起来很丑,因为许多字符需要URL编码。
开发
克隆存储库,并在库的根目录中执行composer install
以安装开发依赖项。从根目录使用phpunit
运行测试。
许可
此库采用MIT许可证 - 请参阅COPYING
文件以获取详细信息。