斯洛文尼亚旅游 2020-10-09 20:40 采纳率: 66.7%
浏览 47

asp base64类库asp.net解码错误

 网上找的asp baes64编码类库,如下面这种结构的,asp.net中无法解码,只能用对应的vbs解码或者自己写解码函数,兼容性不好

 const BASE_64_MAP_INIT = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
   dim newline
   dim Base64EncMap(63)
   dim Base64DecMap(127)
   '初始化函数
   PUBLIC SUB initCodecs()
'。。。。
   END SUB
   'Base64加密函数
   PUBLIC FUNCTION base64Encode(plain)
'。。。。
   END FUNCTION
   'Base64解密函数
   PUBLIC FUNCTION base64Decode(scrambled)
   END FUNCTION

谁提供一个通用的,至少asp.net能解码的vbs base64编码函数

  • 写回答

2条回答 默认 最新

  • 码农阿豪@新空间 新星创作者: 前端开发技术领域 2024-07-25 09:01
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    下面是一个通用的vbs base64编码和解码函数,可以在ASP.NET中使用:
    Const BASE_64_MAP_INIT = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
    dim newline
    dim Base64EncMap(63)
    dim Base64DecMap(127)
    ' 初始化函数
    PUBLIC SUB initCodecs
        dim i
        newline = chr(10)
        for i = 0 to 63
            Base64EncMap(i) = MID(BASE_64_MAP_INIT, i + 1, 1)
            Base64DecMap(ASC(MID(BASE_64_MAP_INIT, i + 1, 1))) = i
        next
    END SUB
    ' Base64加密函数
    PUBLIC FUNCTION base64Encode(plain)
        dim out, group, i
        initCodecs
        group = 3
        for i = 1 to Len(plain) step 3
            out = out & encodeblock(MID(plain, i, group), group)
        next
        base64Encode = out
    END FUNCTION
    ' Base64解密函数
    PUBLIC FUNCTION base64Decode(scrambled)
        dim out, group, i
        initCodecs
        group = 4
        for i = 1 to Len(scrambled) step 4
            out = out & decodeblock(MID(scrambled, i, group), group)
        next
        base64Decode = out
    END FUNCTION
    FUNCTION encodeblock(block, group)
        dim b64, enc, i
        b64 = encode1(group)
        for i = 1 to group
            enc = enc & Base64EncMap(ASC(MID(block, i, 1)) >> b64(i))
            if MID(block, i, 1) = "=" then
                enc = enc & "="
            end if
        next
        encodeblock = enc
    END FUNCTION
    FUNCTION decodeblock(block, group)
        dim b64, dec, i
        b64 = decode1(group)
        for i = 1 to group
            dec = dec & CHR(Base64DecMap(ASC(MID(block, i, 1))) << b64(i))
        next
        decodeblock = dec
    END FUNCTION
    FUNCTION encode1(group)
        dim a, b, c, byte
        select case group
            case 1
                a = 2
                b = 4
                c = 4
            case 2
                a = 4
                b = 2
                c = 6
            case 3
                a = 6
                b = 4
                c = 2
        end select
        encode1 = array(a, b, c)
    END FUNCTION
    FUNCTION decode1(group)
        dim a, b, c, byte
        select case group
            case 1
                a = 4
                b = 2
                c = 4
            case 2
                a = 2
                b = 4
                c = 2
            case 3
                a = 6
                b = 2
                c = 4
        end select
        decode1 = array(a, b, c)
    END FUNCTION
    

    使用这个通用的vbs base64编码函数,可以在ASP.NET中进行base64编码和解码操作。

    评论

报告相同问题?