Session与Cookie的区别(四)

 咖啡寄杯的烦恼

虽然店里生意还可以,但小明无时无刻不想着怎么样发大财赚大钱,让店里的生意变得更好。

他观察到最近好多便利商店开始卖起了咖啡,而且时不时就买一送一或是第二件半价,并且贴心地提供了寄杯的服务。

寄杯就是指说你今天先喝一杯,剩下那杯我帮你记着,你下次来的时候跟我讲我再给你。

如果不提供这种服务,那买一送一就一定要两个人才能喝了(或是你立刻喝两杯),根本就是排挤像小明这样的边缘人。秉持着将心比心的原则,小明当然是希望提供寄杯服务的。

那该怎么寄呢?照之前那样不就得了吗?原本客人的手机里面会存着消费习惯之类的东西,现在多存一个还有几杯咖啡不就行了?

例如说客人买两杯只喝一杯,就在上面写着:coffee=1,代表还剩一杯咖啡,下次来的时候只要出示这个信息,就再给他一杯。

听起来十分合理,而且小明也这样做了,店里的生意变得更好,买咖啡的人愈来愈多,靠着咖啡就让单月营收翻了两倍。

一切看似非常顺利,直到小明月底对帐的时候:不对啊,为什么买咖啡的数量只有 55 杯,卖出去的却有 66 杯?

一向很相信人的小明,在那一瞬间见识到了人心的险恶之处。没错,有人自己偷改信息,例如说把 coffee=1 加个几划改成 coffee=7,就获得了额外六杯的免费咖啡。

这些奥步让小明狠狠一夜之间变成了大人,绝望的小明把悲愤转化成力量,只花了三个晚上就想到了两个解决方法。

第一个方法最简单,就是只要把存在客人手机上的信息加密就好了。

例如说原本是 coffee=1,经过小明自制的特殊加密算法之后,会变成 ED85B89167A84B631C10B046B5FB7FC0 这串只有小明知道怎么解开的密文。

这样一来,除非客人可以破解这段密码,否则信息就不可能被窜改。但有一个小缺点,那就是当小明想存的信息愈来愈多之后,这一串字也会愈来愈长,就会在客人的手机里面占更大的容量。

这个容量是有上限的,客人不会把整台手机都给你存这些信息,所以这点要特别注意。

这个方法解决问题的思路是这样的:「既然存在手机上的信息会被窜改,那我让他不能改就好」。

而第二个方法解决问题的思路是这样的:「既然存在手机上的信息会被窜改,那我把信息存在我这边不就好了吗?」

与其把那些消费习惯或是寄杯数量存在客人的手机里,不如把这些东西记在我的笔记本里面,并且用一种方式把这两个信息对应起来,这样就不怕数据会被改动了。

举例来说,小明可以在笔记本写下客人的身份证字号跟相关资讯,例如说:「A111111111 coffee=1」,接着小明只在客人的手机里面存「A111111111」。

下次客人再来消费的时候,就透过身份证字号去笔记本里面查,就知道客人到底还剩几杯咖啡了。

由于小明的笔记本每天下班都会锁在保险箱里面,因此不用害怕被偷或是被改,可以假设它一定是准确的。

而这样子的方式不把主要信息存在客人那里,而是存在自己这里,所以也不会有被窜改的风险。

可是有个问题,如果有人把身份证字号改成其他人的怎么办?那不就破功了吗?就可以伪造其他人的身份。

这个简单,不如不要用身份证字号,用一个 16 位数的英数字混合乱码好了,例如说:A59Uhe7I94J330mN,这样就很难被猜到了吧!

于是流程会变成这样:

客人那编只需要报 ID 即可,其他资讯都在小明那里

跟之前一样,他们都是透过一张纸条或者是手机里的信息来沟通,但唯一的差别是客人跟小明之间只透过 A59Uhe7I94J330mN 这个存在手机里的 ID 来验证身份,其他相关资讯都写在小明的笔记本里面。

这种验证的方法就像是我曾经去过的网咖。因为会员打咖比较便宜嘛,一小 60 变成一小 36,不办白不办,就办了一张会员卡。店员特别说明认卡不认人,一定要出示卡片才行。

我只要去打咖的时候出示这张会员卡,店员就知道我曾经消费过多少钱,也知道我喜欢点的餐点,所有的信息都是存在他们的系统里面,而我的身份就是透过这张会员卡来表示。

寄杯的例子中,会员卡就是 A59Uhe7I94J330mN 这个 ID,网咖的电脑系统就是小明的笔记本。

小明最后决定用第二种方法,也就是这种靠 ID 认人的方式来管理客人的状态。

从此之后就没有客人能够窜改信息了,而寄杯服务也运行的十分顺利,真是皆大欢喜,可喜可贺。

至于后来变得生意太好,让小明开了分店以后碰到的那些问题,就又是另外一段故事了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值