Current File : /home/mmdealscpanel/yummmdeals.com/md5test.zip
PK��Z���<�	�	md5driver.pynu�[���import string
import md5
from sys import argv

def MDPrint(str):
    outstr = ''
    for i in str:
        o = ord(i)
        outstr = (outstr
                  + string.hexdigits[(o >> 4) & 0xF]
                  + string.hexdigits[o & 0xF])
    print outstr,


from time import time

def makestr(start, end):
    result = ''
    for i in range(start, end + 1):
        result = result + chr(i)

    return result


def MDTimeTrial():
    TEST_BLOCK_SIZE = 1000
    TEST_BLOCKS = 10000

    TEST_BYTES = TEST_BLOCK_SIZE * TEST_BLOCKS

    # initialize test data, need temporary string filler

    filsiz = 1 << 8
    filler = makestr(0, filsiz-1)
    data = filler * (TEST_BLOCK_SIZE // filsiz)
    data = data + filler[:(TEST_BLOCK_SIZE % filsiz)]

    del filsiz, filler


    # start timer
    print 'MD5 time trial. Processing', TEST_BYTES, 'characters...'
    t1 = time()

    mdContext = md5.new()

    for i in range(TEST_BLOCKS):
        mdContext.update(data)

    str = mdContext.digest()
    t2 = time()

    MDPrint(str)
    print 'is digest of test input.'
    print 'Seconds to process test input:', t2 - t1
    print 'Characters processed per second:', TEST_BYTES / (t2 - t1)


def MDString(str):
    MDPrint(md5.new(str).digest())
    print '"' + str + '"'


def MDFile(filename):
    f = open(filename, 'rb')
    mdContext = md5.new()

    while 1:
        data = f.read(1024)
        if not data:
            break
        mdContext.update(data)

    MDPrint(mdContext.digest())
    print filename


import sys

def MDFilter():
    mdContext = md5.new()

    while 1:
        data = sys.stdin.read(16)
        if not data:
            break
        mdContext.update(data)

    MDPrint(mdContext.digest())
    print


def MDTestSuite():
    print 'MD5 test suite results:'
    MDString('')
    MDString('a')
    MDString('abc')
    MDString('message digest')
    MDString(makestr(ord('a'), ord('z')))
    MDString(makestr(ord('A'), ord('Z'))
              + makestr(ord('a'), ord('z'))
              + makestr(ord('0'), ord('9')))
    MDString((makestr(ord('1'), ord('9')) + '0') * 8)

    # Contents of file foo are "abc"
    MDFile('foo')


# I don't wanna use getopt(), since I want to use the same i/f...
def main():
    if len(argv) == 1:
        MDFilter()
    for arg in argv[1:]:
        if arg[:2] == '-s':
            MDString(arg[2:])
        elif arg == '-t':
            MDTimeTrial()
        elif arg == '-x':
            MDTestSuite()
        else:
            MDFile(arg)

main()
PK��ZY���
md5driver.pyonu�[����
��^c@s�ddlZddlZddlmZd�ZddlmZd�Zd�Zd�Zd�Z	ddlZd	�Z
d
�Zd�Ze�dS(i����N(targvcCsSd}xB|D]:}t|�}|tj|d?d@tj|d@}q
W|GdS(Ntii(tordtstringt	hexdigits(tstrtoutstrtito((s./usr/lib64/python2.7/Demo/md5test/md5driver.pytMDPrints

,(ttimecCs8d}x+t||d�D]}|t|�}qW|S(NRi(trangetchr(tstarttendtresultR((s./usr/lib64/python2.7/Demo/md5test/md5driver.pytmakestrscCs�d}d}||}d}td|d�}|||}|||| }~~dG|GdGHt�}tj�}x!t|�D]}|j|�q�W|j�}	t�}
t|	�dGHd	G|
|GHd
G||
|GHdS(Ni�i'iiisMD5 time trial. Processings
characters...sis digest of test input.sSeconds to process test input:s Characters processed per second:i(RR
tmd5tnewRtupdatetdigestR	(tTEST_BLOCK_SIZEtTEST_BLOCKSt
TEST_BYTEStfilsiztfillertdatatt1t	mdContextRRtt2((s./usr/lib64/python2.7/Demo/md5test/md5driver.pytMDTimeTrials&

		

cCs*ttj|�j��d|dGHdS(Nt"(R	RRR(R((s./usr/lib64/python2.7/Demo/md5test/md5driver.pytMDString;scCsat|d�}tj�}x*|jd�}|s7Pn|j|�qWt|j��|GHdS(Ntrbi(topenRRtreadRR	R(tfilenametfRR((s./usr/lib64/python2.7/Demo/md5test/md5driver.pytMDFile@scCsQtj�}x-tjjd�}|s+Pn|j|�qWt|j��HdS(Ni(RRtsyststdinR#RR	R(RR((s./usr/lib64/python2.7/Demo/md5test/md5driver.pytMDFilterPscCs�dGHtd�td�td�td�tttd�td���tttd�td��ttd�td��ttd	�td
���tttd�td
��d	d�td
�dS(NsMD5 test suite results:Rtatabcsmessage digesttztAtZt0t9t1itfoo(R RRR&(((s./usr/lib64/python2.7/Demo/md5test/md5driver.pytMDTestSuite]s



N'cCs�tt�dkrt�nxitdD]]}|d dkrNt|d�q'|dkrdt�q'|dkrzt�q't|�q'WdS(Niis-ss-ts-x(tlenRR)R RR3R&(targ((s./usr/lib64/python2.7/Demo/md5test/md5driver.pytmainns


(
RRR'RR	R
RRR R&R)R3R6(((s./usr/lib64/python2.7/Demo/md5test/md5driver.pyt<module>s	
		"			
		
PK��ZY���
md5driver.pycnu�[����
��^c@s�ddlZddlZddlmZd�ZddlmZd�Zd�Zd�Zd�Z	ddlZd	�Z
d
�Zd�Ze�dS(i����N(targvcCsSd}xB|D]:}t|�}|tj|d?d@tj|d@}q
W|GdS(Ntii(tordtstringt	hexdigits(tstrtoutstrtito((s./usr/lib64/python2.7/Demo/md5test/md5driver.pytMDPrints

,(ttimecCs8d}x+t||d�D]}|t|�}qW|S(NRi(trangetchr(tstarttendtresultR((s./usr/lib64/python2.7/Demo/md5test/md5driver.pytmakestrscCs�d}d}||}d}td|d�}|||}|||| }~~dG|GdGHt�}tj�}x!t|�D]}|j|�q�W|j�}	t�}
t|	�dGHd	G|
|GHd
G||
|GHdS(Ni�i'iiisMD5 time trial. Processings
characters...sis digest of test input.sSeconds to process test input:s Characters processed per second:i(RR
tmd5tnewRtupdatetdigestR	(tTEST_BLOCK_SIZEtTEST_BLOCKSt
TEST_BYTEStfilsiztfillertdatatt1t	mdContextRRtt2((s./usr/lib64/python2.7/Demo/md5test/md5driver.pytMDTimeTrials&

		

cCs*ttj|�j��d|dGHdS(Nt"(R	RRR(R((s./usr/lib64/python2.7/Demo/md5test/md5driver.pytMDString;scCsat|d�}tj�}x*|jd�}|s7Pn|j|�qWt|j��|GHdS(Ntrbi(topenRRtreadRR	R(tfilenametfRR((s./usr/lib64/python2.7/Demo/md5test/md5driver.pytMDFile@scCsQtj�}x-tjjd�}|s+Pn|j|�qWt|j��HdS(Ni(RRtsyststdinR#RR	R(RR((s./usr/lib64/python2.7/Demo/md5test/md5driver.pytMDFilterPscCs�dGHtd�td�td�td�tttd�td���tttd�td��ttd�td��ttd	�td
���tttd�td
��d	d�td
�dS(NsMD5 test suite results:Rtatabcsmessage digesttztAtZt0t9t1itfoo(R RRR&(((s./usr/lib64/python2.7/Demo/md5test/md5driver.pytMDTestSuite]s



N'cCs�tt�dkrt�nxitdD]]}|d dkrNt|d�q'|dkrdt�q'|dkrzt�q't|�q'WdS(Niis-ss-ts-x(tlenRR)R RR3R&(targ((s./usr/lib64/python2.7/Demo/md5test/md5driver.pytmainns


(
RRR'RR	R
RRR R&R)R3R6(((s./usr/lib64/python2.7/Demo/md5test/md5driver.pyt<module>s	
		"			
		
PK��Z����READMEnu�[���This is the Python version of the MD5 test program from the MD5
Internet Draft (Rivest and Dusse, The MD5 Message-Digest Algorithm, 10
July 1991).  The file "foo" contains the string "abc" with no trailing
newline.

When called without arguments, it acts as a filter.  When called with
"-x", it executes a self-test, and the output should literally match
the output given in the RFC.

Code by Jan-Hein B\"uhrman after the original in C.
PK��Z�A$5foonu�[���abcPK��Z���<�	�	md5driver.pynu�[���PK��ZY���

md5driver.pyonu�[���PK��ZY���
Jmd5driver.pycnu�[���PK��Z�����$READMEnu�[���PK��Z�A$5q&foonu�[���PKo�&