Completely useless, but then again, so is MD5!
dim code(63) as byte
input "File Name?",textf$ : input "Key?",key$ : sync rate 0 : sync on : print "Generating Number Key..."
for a=1 to len(key$)
inc k,asc(mid$(key$,a))
print k
next a
print "...done"
randomize k
open to read 1,textf$ : repeat : read string 1,t$ : for a=1 to len(t$) : cc = (asc(mid$(t$,a))*rnd(255)) : inc bits
cc$ = bin$(cc)
for b=17 to len(cc$)
if mid$(cc$,b) = "1" then inc c
if c > 63 then c = 0
inc code(c)
next b
if timer()>oldtimer + 1000 : oldtimer = timer() : print str$(bits)+"/"+str$(file size(textf$)) : sync : endif : next a : until file end(1)
print "Done."
for a=0 to 60 step 4
print str$(code(a)) + str$(code(a+1)) + str$(code(a+2)) + str$(code(a+3))
next a : sync : wait key : close file 1