|
|
1
9
尝试 uniqid -并可能与md5哈希相结合,如示例所示:
但是,我必须注意,以这种方式生成的URL(无论哈希算法如何)都不会是“安全的”,只是很难猜测。 |
|
|
2
9
更新:
对于即时登录,没有真正安全的方法来拥有单个URL。
例如,点击我的gmail中的谷歌日历,我会得到: https://www.google.com/calendar/render?tab=mc&gsessionid=-LTeHrnKoeAbDcVaN68NHA 除非你首先以我的身份进行身份验证,否则这不会帮助你访问我的帐户。 旧职位: com_create _guid 用这个。 在linux上,我认为您可以使用 uuid_create ,或此代码来自 here
|
|
|
3
4
只需生成一个GUID。重要的是,这不是一个老式的顺序GUID。 然而,php似乎没有自己的GUID生成函数。另一个答案中建议的com_create_guid函数似乎仅在php中在Windows上运行时可用。 有一个用户建议的替代方案 com_create_guid 对于it手册页上的非Windows:
但我必须承认,我不愿意把它用于任何重要的事情,以防它潜藏着一个不明显的问题,而我没有受过密码训练的头脑却没有发现。 |
|
4
3
你需要一个好的随机数生成器,每个加密库至少有一个,我不懂PHP,所以我不能给你函数名。 然后你必须决定你的随机数的长度,你应该选择一个足够大的长度,任何猜到一个数字的人都会得到一个未分配的数字-或者:
现在您有了一个“安全”数字,您可以将其转换为十进制、十六进制或base64并使用该字符串。 |
|
|
5
3
如果要确保URL是唯一的,并且只能使用有限的次数,请执行以下操作:
这是伟大的给你的一次性网址,几乎不可能猜测。 当然,您还必须实施一些安全检查,以限制人们尝试访问无效URL的速率。 |
|
|
6
2
我避免这样做是因为: 因为这些URL可以缓存/登录到代理、网络日志、浏览器缓存、书签、电子邮件等。 |
|
|
7
1
修剪其他花括号的步骤 $guid=strtolower(trim(com_create_guid(),“{}”);(PHP 5或更高版本) |