我打算在我的网站上存储礼品卡代码,人们可以在某个商店购买,然后可以使用这些代码在我的网站上购买东西,现在我打算按照以下流程来制作这些代码更难解密:
第一,我首先使用str_rot13将每个字母移动13个位置 第二,我将使用str_replace将每2转为1,每1转为2。 第三,我将使用mycript或我想要的任何加密方法对其进行加密 最后我会将加密的每个字母移动13或任何我想要的。
我在php中的安全性方面不是很先进,所以这就是为什么我要求你的意见,如果这可能是存储数据的好方法,或者有任何其他方法可以查看。
我也知道如何防止黑客解密我存储到我的数据库中的任何信息没有万无一失的计划或策略,但我至少想让他们尽可能不轻易解码它。 / p>
注意:我上面使用的方法只是我可能做的一个例子。
答案 0 :(得分:2)
我会建议您为此目的使用散列(以及salting),就像使用密码一样。
您可以使用salt在数据库中散列礼品代码,并将salt和hash存储在数据库中。
稍后,当用户使用礼品代码时,只需使用相同的方法对其进行重新分析,然后检查数据库中是否存在此类哈希。如果是这样,这意味着礼品代码是正确的,您只需相应地奖励用户。
在我看来,哈希比加密更安全。但是,如果你倾向于为此目的使用加密,你可以从这个问题的答案中使用PHP类:{{3 }}
答案 1 :(得分:0)
如果您使用的是数据库,则无需向用户提供任何敏感信息。
可能的礼品卡流程:
每张卡都有一个唯一的编号(可能是以难以猜测的方式随机生成的),写在卡片,纸张等上......
在结账时,职员要么使用您提供的服务来“注册”该卡的价值。或者它是预定的,在这种情况下,卡可以成组。 (例如10美元,20美元等)但仍应以某种方式激活以打击欺诈行为。
然后将此卡交给客户,然后可以在结帐时使用该代码以接收与唯一号码相关联的值。
这些卡的安全性和隐私性将由您分发的商店掌握。在盗窃或其他严重问题的情况下,您需要一种方法来了解哪家商店有哪些等。
通过这种方式,用户无法猜测数字(轻松),因为它本来是1.购买和2.不能使用。
如果正确完成哈希和加密可能是安全的,那么向用户提供有关内部结构的潜在信息是没有意义的。即使他们更难获得。