VB中实现MD5加密[6]

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 bucher 的 blog

                                    inputbuffer(intbyteindex + 3) * 16777216#
        outputbuffer(intdblindex) = unsignedtolong(dblsum)
        intdblindex = intdblindex + 1
    next intbyteindex
end sub

'
' ff, gg, hh, and ii transformations for rounds 1, 2, 3, and 4.
' rotation is separate from addition to prevent recomputation.
'
private function ff(a as long, _
                    b as long, _
                    c as long, _
                    d as long, _
                    x as long, _
                    s as long, _
                    ac as long) as long
    a = longoverflowadd4(a, (b and c) or (not (b) and d), x, ac)
    a = longleftrotate(a, s)
    a = longoverflowadd(a, b)
end function

private function gg(a as long, _
                    b as long, _
                    c as long, _
                    d as long, _
                    x as long, _
                    s as long, _
                    ac as long) as long
    a = longoverflowadd4(a, (b and d) or (c and not (d)), x, ac)
    a = longleftrotate(a, s)
    a = longoverflowadd(a, b)
end function

private function hh(a as long, _
                    b as long, _
                    c as long, _
                    d as long, _
                    x as long, _
                    s as long, _
                    ac as long) as long
    a = longoverflowadd4(a, b xor c xor d, x, ac)
    a = longleftrotate(a, s)
    a = longoverflowadd(a, b)
end function

private function ii(a as long, _
                    b as long, _
                    c as long, _
                    d as long, _
                    x as long, _
                    s as long, _
                    ac as long) as long
    a = longoverflowadd4(a, c xor (b or not (d)), x, ac)
    a = longleftrotate(a, s)
    a = longoverflowadd(a, b)
end function

'
' rotate a long to the right
'
function longleftrotate(value as long, bits as long) as long
    dim lngsign as long
    dim lngi as long
    bits = bits mod 32

本文关键:MD5,VB6
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top