国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > ASP > 正文

asp生成不需要數(shù)據(jù)庫的中獎碼

2024-05-04 10:57:25
字體:
供稿:網(wǎng)友
恭喜您,您中獎了,你的中獎碼是(請牢記,領(lǐng)獎需要):XXXXXXXXXXX

然后用戶輸入XXXXXXXXXXX,簡單驗證后就可以領(lǐng)獎了。


你使用過這樣的功能,或者有沒有想開發(fā)一個這樣的功能呢?

有一個思路是:將一批唯一中獎碼,錄入的到數(shù)據(jù)庫,中獎時,取出來一條,做一個標記,把中獎碼告訴
用戶。

但是這樣要先將一批中獎碼錄入到數(shù)據(jù)庫中,有沒有其他方法呢?

比如:200807151054281502895e585d7e4b529e,能不能做到:不到數(shù)據(jù)庫中查詢驗證就可以確認這個中獎
碼是不是有效(不是偽造)的呢?

我有一個思路,如果愿意,請聽我說一下:)

比如這個中獎碼:200807151054281502895e585d7e4b529e

他有三部分組成
20080715105428 1502 895e585d7e4b529e

20080715105428 是年月日時分秒YYYYMMDDhhmmss
1502 是四位隨機數(shù),防止第一部分重復(fù)
895e585d7e4b529e 前兩部分+PrivateKey的 MD5 16位的值

一句話:中獎碼的前18位和后16位是有關(guān)系的

這樣,只要別人猜不到你的PrivateKey,就偽造不了你的中獎碼。

不足之處,這個中獎碼長了點:(

 

代碼如下:

getkey() 返回一個唯一的中獎碼
ckkey(s) 驗證中獎碼是否有獎
復(fù)制代碼 代碼如下:

<%
Private Const BITS_TO_A_BYTE = 8
Private Const BYTES_TO_A_WORD = 4
Private Const BITS_TO_A_WORD = 32

Private m_lOnBits(30)
Private m_l2Power(30)

Private Function LShift(lValue, iShiftBits)
    If iShiftBits = 0 Then
        LShift = lValue
        Exit Function
    ElseIf iShiftBits = 31 Then
        If lValue And 1 Then
            LShift = &H80000000
        Else
            LShift = 0
        End If
        Exit Function
    ElseIf iShiftBits < 0 Or iShiftBits > 31 Then
        Err.Raise 6
    End If

    If (lValue And m_l2Power(31 - iShiftBits)) Then
        LShift = ((lValue And m_lOnBits(31 - (iShiftBits + 1))) * m_l2Power(iShiftBits)) Or &H80000000
    Else
        LShift = ((lValue And m_lOnBits(31 - iShiftBits)) * m_l2Power(iShiftBits))
    End If
End Function
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 军事| 铜鼓县| 三穗县| 洛扎县| 凯里市| 乌苏市| 平南县| 秭归县| 大安市| 临桂县| 苍南县| 永春县| 饶平县| 汶上县| 滕州市| 和龙市| 唐海县| 酒泉市| 抚顺县| 周宁县| 沾化县| 都安| 临城县| 丽水市| 闵行区| 和平区| 太白县| 太湖县| 安图县| 应城市| 顺平县| 阳高县| 名山县| 新郑市| 宜良县| 陆川县| 柳江县| 南木林县| 青川县| 千阳县| 遂溪县|