aarondfrancis/urlcrypt

此包已被放弃,不再维护。作者建议使用atrapalo/urlcrypt包。

PHP库,用于在URL中安全地编码和解码任意二进制数据的小片段。

维护者

详细信息

github.com/aarondfrancis/URLcrypt

来源

安装: 44,117

依赖者: 1

建议者: 0

安全: 0

星标: 98

关注者: 9

分支: 61

v0.2.0 2015-03-06 21:18 UTC

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文件以获取详细信息。