我正在使用一个邮件列表程序,它将日期插入到“编码”的网络链接中,因此用户无法更改或编辑它。
格式描述如下:
一个八字符的字符串,
AABBCCDD,
其中:
- 年份 =
1980 + HexToInt(BB) / 3
- 月 =
HexToInt(CC) / 7 - 21
- 天 =
HexToInt(DD) / 7 - 5
还包括一个校验和以避免随意修改:
AA = IntToHex(Year + Month + Day mod 200)
例如
2660BDAF
将参考20 June, 2012
.
您能帮我将以下内容转换为经典 ASP:
CodedDateStr = Request.querystring("Exp")
AYear = 1980 + HexToInt(CodedDateStr[3] + CodedDateStr[4]) / 3
AMonth = HexToInt(CodedDateStr[5] + CodedDateStr[6]) / 7 - 21
ADay = HexToInt(CodedDateStr[7] + CodedDateStr[8]) / 7 - 5
ACheckSum = AYear + AMonth + ADay mod 200
if ACheckSum <> HexToInt(CodedDateStr[1] + CodedDateStr[2]) then
ValidDate = 0
else
ValidDate = 1
end if
AExpiryDate = EncodeDate(ADay, AMonth, AYear)
if Date() > AExpiryDate then
ExpiredOffer = 1
else
ExpiredOffer = 0
end if
....
看起来HexToInt
等价的是clng("&h" & hexnumber)
我不确定EncodeDate
,我希望它不是像笨拙的东西CDate(AMonth + "/" + ADay + "/" + AYear)