md5_gg d, a, b, c, x(k + 2), s22, &hfcefa3f8 md5_gg c, d, a, b, x(k + 7), s23, &h676f02d9 md5_gg b, c, d, a, x(k + 12), s24, &h8d2a4c8a
md5_hh a, b, c, d, x(k + 5), s31, &hfffa3942 md5_hh d, a, b, c, x(k + 8), s32, &h8771f681 md5_hh c, d, a, b, x(k + 11), s33, &h6d9d6122 md5_hh b, c, d, a, x(k + 14), s34, &hfde5380c md5_hh a, b, c, d, x(k + 1), s31, &ha4beea44 md5_hh d, a, b, c, x(k + 4), s32, &h4bdecfa9 md5_hh c, d, a, b, x(k + 7), s33, &hf6bb4b60 md5_hh b, c, d, a, x(k + 10), s34, &hbebfbc70 md5_hh a, b, c, d, x(k + 13), s31, &h289b7ec6 md5_hh d, a, b, c, x(k + 0), s32, &heaa127fa md5_hh c, d, a, b, x(k + 3), s33, &hd4ef3085 md5_hh b, c, d, a, x(k + 6), s34, &h4881d05 md5_hh a, b, c, d, x(k + 9), s31, &hd9d4d039 md5_hh d, a, b, c, x(k + 12), s32, &he6db99e5 md5_hh c, d, a, b, x(k + 15), s33, &h1fa27cf8 md5_hh b, c, d, a, x(k + 2), s34, &hc4ac5665
md5_ii a, b, c, d, x(k + 0), s41, &hf4292244 md5_ii d, a, b, c, x(k + 7), s42, &h432aff97 md5_ii c, d, a, b, x(k + 14), s43, &hab9423a7 md5_ii b, c, d, a, x(k + 5), s44, &hfc93a039 md5_ii a, b, c, d, x(k + 12), s41, &h655b59c3 md5_ii d, a, b, c, x(k + 3), s42, &h8f0ccc92 md5_ii c, d, a, b, x(k + 10), s43, &hffeff47d md5_ii b, c, d, a, x(k + 1), s44, &h85845dd1 md5_ii a, b, c, d, x(k + 8), s41, &h6fa87e4f md5_ii d, a, b, c, x(k + 15), s42, &hfe2ce6e0 md5_ii c, d, a, b, x(k + 6), s43, &ha3014314 md5_ii b, c, d, a, x(k + 13), s44, &h4e0811a1 md5_ii a, b, c, d, x(k + 4), s41, &hf7537e82 md5_ii d, a, b, c, x(k + 11), s42, &hbd3af235 md5_ii c, d, a, b, x(k + 2), s43, &h2ad7d2bb md5_ii b, c, d, a, x(k + 9), s44, &heb86d391
a = addunsigned(a, aa) b = addunsigned(b, bb) c = addunsigned(c, cc) d = addunsigned(d, dd) next
md5 = lcase(wordtohex(a) & wordtohex(b) & wordtohex(c) & wordtohex(d)) 'md5=lcase(wordtohex(b) & wordtohex(c)) 'i crop this to fit 16byte database password :d
md5=ucase(md5) end function
public function md5_16(smessage) m_lonbits(0) = clng(1) m_lonbits(1) = clng(3) m_lonbits(2) = clng(7) m_lonbits(3) = clng(15) m_lonbits(4) = clng(31) m_lonbits(5) = clng(63) m_lonbits(6) = clng(127) m_lonbits(7) = clng(255) m_lonbits(8) = clng(511) m_lonbits(9) = clng(1023) m_lonbits(10) = clng(2047) m_lonbits(11) = clng(4095) m_lonbits(12) = clng(8191) m_lonbits(13) = clng(16383) m_lonbits(14) = clng(32767) m_lonbits(15) = clng(65535) m_lonbits(16) = clng(131071) m_lonbits(17) = clng(262143) m_lonbits(18) = clng(524287) m_lonbits(19) = clng(1048575) m_lonbits(20) = clng(2097151) m_lonbits(21) = clng(4194303) m_lonbits(22) = clng(8388607) |