问题描述
我对这种空间很陌生,所以提前道歉!
我想创建一个加密的优惠券代码生成/验证系统(这样可以避免将优惠券代码保存在数据库中)——类似于 grubhub 实现的here。
要求是:
- 优惠券代码应该是固定长度,大约 10 个字符和字母数字。
- 优惠券代码应该很难逆向工程。
- 优惠券代码应该具有相对抗冲突性(以避免两次发出相同的代码)。
我写了一些非常基本的伪代码来更好地表达我的想法:
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 (将#修改为@)