我对这种空间很陌生,所以提前道歉!
我想创建一个加密的优惠券代码生成/验证系统(这样可以避免将优惠券代码保存在数据库中)——类似于 grubhub 实现的here。
要求是:
我写了一些非常基本的伪代码来更好地表达我的想法:
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
}
根据要求,是否有任何加密算法可以让我实现上述目标?
如果不是,那么处理此类问题的最佳方法是什么?
提前致谢!