如何创建加密优惠券代码生成/验证系统?

问题描述

我对这种空间很陌生,所以提前道歉!

我想创建一个加密的优惠券代码生成/验证系统(这样可以避免将优惠券代码保存在数据库中)——类似于 grubhub 实现的here

要求是:

  1. 优惠券代码应该是固定长度,大约 10 个字符和字母数字。
  2. 优惠券代码应该很难逆向工程。
  3. 优惠券代码应该具有相对抗冲突性(以避免两次发出相同的代码)。

我写了一些非常基本的伪代码来更好地表达我的想法:

const secret = 'j3h6b7kkk2v2c4n6k4j3p24'

function createCouponCode (couponType) {
    // Example couponType: 'tenPercentOff'
    const message = couponType + generateUniqueRandomValue() // Example: tenPercentOffg82j3k40ndvs7294v
    const code = encrypt(message,secret)
    return code // Example: D28MFPQ5ZN
}

function validateCouponCode (code) {
    const message = decrypt(code,secret) // Example: tenPercentOffg82j3k40ndvs7294v
    const couponType = findMatchingCouponType(message) // Example: tenPercentOff
    return couponType || false
}

根据要求,是否有任何加密算法可以让我实现上述目标?

如果不是,那么处理此类问题的最佳方法是什么?

提前致谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...