最新更新 sitemap 网站制作设计本站搜索
网页设计
国外网站 韩国网站 个人主页 手提袋设计 CSS 网页特效 平面设计 网站设计 Flash CMS技巧 服装网站 php教程 photoshop 画册 服务器选用 数据库 Office
虚拟主机 域名注册 云主机 网页设计 客服QQ:8208442
当前位置:首页 > 编程开发 > asp教程

ASP Luhn检验数字算法函数技巧

日期:09-21    来源:中国设计秀    作者:cnwebshow.com

因为用到信用卡验证,就找了一下,找到以下知识及函数,先普及一下知识:O4d中国设计秀

Luhn 检验数字算法(Luhn Check Digit Algorithm,Luhn Algorithm,LUHN Formula)O4d中国设计秀

Luhn 检验数字算法(Luhn Check Digit Algorithm),也叫做模数10公式,是一种简单的算法,用于验证银行卡、信用卡号码的有效性的算法。对所有大型信用卡公司发行的信用卡都起作用,这些公司包括美国ExPRess、护照、万事达卡、Discover和用餐者俱乐部等。这种算法最初是在20世纪60年代由一组数学家制定,现在Luhn 检验数字算法属于大众,任何人都可以使用它。O4d中国设计秀

算法:将每个奇数加倍和使它变为单个的数字,如果必要的话通过减去9和在每个偶数上加上这些值。如果此卡要有效,那么,结果必须是10的倍数。O4d中国设计秀

O4d中国设计秀
函数:O4d中国设计秀

O4d中国设计秀
 程序代码O4d中国设计秀
<%O4d中国设计秀
    ' Copyright (c) 2008, reusablecode.blogspot.com; some rights reserved.O4d中国设计秀
    'O4d中国设计秀
    ' This work is licensed under the Creative Commons Attribution License. To viewO4d中国设计秀
    ' a copy of this license, visit http://creativecommons.org/licenses/by/3.0/ orO4d中国设计秀
    ' send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, CaliforniaO4d中国设计秀
    ' 94305, USA.O4d中国设计秀

    ' Luhn (mod 10) algorithmO4d中国设计秀
    function luhn(byVal input)O4d中国设计秀
        dim sumO4d中国设计秀
        dim oddO4d中国设计秀
        dim currentDigitO4d中国设计秀
        dim regExO4d中国设计秀

        input = CStr(input)O4d中国设计秀
        sum = 0O4d中国设计秀
        odd = CBool(len(input) mod 2)O4d中国设计秀

        ' Remove any non-numeric characters.O4d中国设计秀
        if not isNumeric(input) thenO4d中国设计秀
            set regEx = new RegExpO4d中国设计秀
            regEx.Global = trueO4d中国设计秀
            regEx.Pattern = "D"O4d中国设计秀
            input = regEx.Replace(input, "")O4d中国设计秀
            set regEx = nothingO4d中国设计秀
        end ifO4d中国设计秀

        ' Calculate sum of digits.O4d中国设计秀
        for i = 1 to len(input)O4d中国设计秀
            currentDigit = cint(mid(input, i, 1))O4d中国设计秀

            if odd thenO4d中国设计秀
                sum = sum + currentDigitO4d中国设计秀
            elseO4d中国设计秀
                if currentDigit * 2 > 9 thenO4d中国设计秀
                    sum = sum + (currentDigit * 2 - 9)O4d中国设计秀
                elseO4d中国设计秀
                    sum = sum + (currentDigit * 2)O4d中国设计秀
                end ifO4d中国设计秀
            end ifO4d中国设计秀

            odd = not oddO4d中国设计秀
        nextO4d中国设计秀

        ' Check validity.O4d中国设计秀
        if sum mod 10 = 0 thenO4d中国设计秀
            luhn = trueO4d中国设计秀
        elseO4d中国设计秀
            luhn = falseO4d中国设计秀
        end ifO4d中国设计秀
    end functionO4d中国设计秀

    ' Unit test - expected result is trueO4d中国设计秀
    if luhn("9558821402001225732") thenO4d中国设计秀
        response.write "true"O4d中国设计秀
    elseO4d中国设计秀
        response.write "false"O4d中国设计秀
    end ifO4d中国设计秀
%>O4d中国设计秀

O4d中国设计秀
注:卡号是百度上随便搜的,如有不妥敬请告知。有需要此函数的朋友可以自行搜索或者拿自己卡号做测试。O4d中国设计秀

本文引用地址:/bc/article_46289.html
网站地图 | 关于我们 | 联系我们 | 网站建设 | 广告服务 | 版权声明 | 免责声明