PHP中的简单加密

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了PHP中的简单加密脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在构建一个带有系统的系统,我在’网上提供可用于虚拟宠物的网络.该系统将主要由儿童拥有.由于我希望它可用于绝对的初学者程序员,因此我的系统存在一些复杂性限制:它不能使用通常不附带 PHP的库,也不能触及数据库或写入其他永久存储器.

当每只宠物被采用时,访客随机获得该宠物的一系列略有不同的变体之一.变化最初看起来是一样的,但随着时间的推移长大成为不同的宠物.访问者将获得HTML的简短代码,链接到他们宠物的图像.由于服务器端没有永久存储空间,因此用户的图像链接必须包含所有信息,以确定他们最终得到的宠物变体.

目前,URL只包含宠物的ID和用户获得的变体的ID.这样做的问题在于,通过将代码相互比较,用户可以找出他们中的哪些人最终得到相同的变化.由于某些变化比其他变种更少,因此用户可以在差异甚至在视觉上明显之前轻松发现罕见的变化.

我想要的是URL中的详细信息的加密系统.隐藏变体ID的东西,以便每个用户获得具有高概率的不同URL.我想过使用变量ID(3或4位)作为大随机数的低位或高位,但是用户会在其中发现模式.理想情况下,加密系统将进行参数化,以便我的系统的每个安装都使用稍微不同的加密.

PHP的mcrypt库可能会有一些有用的东西,但在主机之间似乎并不常见.

我可以在这里使用简单的,参数化的混淆/加密吗?

如果您期望相对较低的复杂程度,那么您可以进行非常简单的“xor”加密,并将密钥“存储”为URL的一部分.然后你可以使用PHP的rand()或/ dev / random或其他任何东西来生成密钥.

低级别的用户不会轻易发现他们需要做的只是他们的宠物ID的下部分和上半部分,以获得可以与他们的朋友比较的值.我猜大多数能够认识到这一点的人都不会花时间去弄明白,而且那些人无论如何都不在你的目标受众之外.

编辑:如果不明显,我说你给每个宠物一个不同的钥匙(因为给同一个不会解决你的问题).因此,如果宠物变异(PEtVAR)是16位数,则生成16位随机数(rnd),然后执行此操作:petvar =(petvar ^ rnd)<< 16 | RND;然后你可以反转那个操作来提取rnd然后是petvar ^ rnd,然后再次xor再次得到原始的petvar.

脚本宝典总结

以上是脚本宝典为你收集整理的PHP中的简单加密全部内容,希望文章能够帮你解决PHP中的简单加密所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。