首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用PHP在序列号中编码字符串?

如何使用PHP在序列号中编码字符串?
EN

Stack Overflow用户
提问于 2013-05-23 21:45:04
回答 1查看 1K关注 0票数 2

我需要使用PHP生成以下格式的序列号"ASDK3-JDAL9-24SFT-J5D8R-D4AL9“。一个要求是,我需要在这个序列号中以某种方式编码一个时间戳和一个电子邮件地址,然后在需要时检索它们。有什么简单的方法吗?

编辑使之更具体,序列号中允许的数字和字母需要0-9和and。为了使它更通用,我需要有两个短字符串,例如,在那个序列号中编码。例如,日期为"04/03/2013“和一个号码"324”或电子邮件地址(如果可能的话)。字符串不需要在序列号中具有可读性,但我需要能够在需要时检索它们。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-23 22:08:17

让我们使用base32编码做一些简单的计算。你有36个字符,但我们假设32个字符,因为我们正在做粗略的估计。

基数32增加60%的开销。如果您想要存储8个字符的日期和3个字符的数量,则至少需要该数据的( 8 + 3 ) * 1.6 = 18字符。您的密钥是25个字符长,所以您将保留一些随机性的7 / 1.6 = 4字符。如果您的随机密钥有64个字符,您将有64^4 = 16 million的可能性。

PHP没有可用的原生基32函数,但您可以自己编写一个函数,大纲与base64相同,只是每次只使用7位而不是8位。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16724438

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档