des_enc.py

来自「It is an experimental testing for python」· Python 代码 · 共 52 行

PY
52
字号
from M2Crypto import EVPimport cStringIOdef cipher_filter(cipher,inf,outf):    while 1:        buf = inf.read()        if not buf:            break        outf.write(cipher.update(buf))    outf.write(cipher.final())    return outf.getvalue()def encript(keyfn,ptxtfn,outfn):    fk = open(keyfn, 'rb')    key = fk.read()    fk.close()    enc=1    dec =0    fc = open(ptxtfn, 'rb')    ptxt = fc.read()    fc.close()    print 'ptxt:', `ptxt`    j = EVP.Cipher('des_ede_cbc',key,'\x00\x00\x00\x00\x00\x00\x00\x00',enc) #,1,'sha1','saltsalt',5)    pbuf =cStringIO.StringIO(ptxt)    cbuf =cStringIO.StringIO()    print pbuf    print cbuf    ctxt = cipher_filter(j, pbuf, cbuf)    pbuf.close()    cbuf.close()    print `ctxt`    fo = open(outfn,'wb')    fo.write(ctxt)    fo.close()if __name__=='__main__':    from optparse import OptionParser    parser = OptionParser(usage='enc [-k] [-o] msg', version='enc 1.0')    parser.add_option('-k','--key',dest='keyfile', help='key file',default='des_data/EFsk.4.bin')    parser.add_option('-o','--out',dest='output',help='output file',default='des_ctxt.dat')    (options,args) = parser.parse_args()    keyfn = options.keyfile    outfn = options.output    msgfn = args[0]        encript(keyfn,msgfn,outfn)

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?