python基于pyDes库实现des加密的方法
本文实例讲述了python基于pyDes库实现des加密的方法。分享给大家供大家参考,具体如下:
下载及简介地址:https://twhiteman.netfirms.com/des.html
如需要在python中使用des加密,可以直接使用pyDes库加密,该库提供了CBC和ECB两种加密方式。
1、Windows下安装
下载后pyDes-x.x.x.zip并解压后,里面有setup.py文件,使用命令setup.py--help可查看详细使用。
你可以使用命令pythonsetup.pyinstall命令安装,也可以直接将压缩包内的pyDes.py拷贝到本地的pythonlib库下直接开始使用
2、使用
使用参数如下(拷贝自上述提供的地址):
Classinitialization
--------------------
pyDes.des(key,[mode],[IV],[pad],[padmode])
pyDes.triple_des(key,[mode],[IV],[pad],[padmode])
key ->Bytescontainingtheencryptionkey.8bytesforDES,16or24bytes
forTripleDES
mode ->Optionalargumentforencryptiontype,canbeeither
pyDes.ECB(ElectronicCodeBook)orpyDes.CBC(CypherBlockChaining)
IV ->OptionalInitialValuebytes,mustbesuppliedifusingCBCmode.
Lengthmustbe8bytes.
pad ->Optionalargument,setthepadcharacter(PAD_NORMAL)touseduring
allencrypt/decrptoperationsdonewiththisinstance.
padmode->Optionalargument,setthepaddingmode(PAD_NORMALorPAD_PKCS5)
touseduringallencrypt/decrptoperationsdonewiththisinstance.
IrecommendtousePAD_PKCS5padding,asthenyouneverneedtoworryaboutany
paddingissues,asthepaddingcanberemovedunambiguouslyupondecrypting
datathatwasencryptedusingPAD_PKCS5padmode.
Commonmethods
--------------
encrypt(data,[pad],[padmode])
decrypt(data,[pad],[padmode])
data ->Bytestobeencrypted/decrypted
pad ->Optionalargument.OnlywhenusingpadmodeofPAD_NORMAL.For
encryption,addsthischaracterstotheendofthedatablockwhen
dataisnotamultipleof8bytes.Fordecryption,willremovethe
trailingcharactersthatmatchthispadcharacterfromthelast8
bytesoftheunencrypteddatablock.
padmode->Optionalargument,setthepaddingmode,mustbeoneofPAD_NORMAL
orPAD_PKCS5).DefaultstoPAD_NORMAL
Example:
frompyDesimport* #ForPython3,you'llneedtousebytes,i.e.: #data=b"Pleaseencryptmydata" #k=des(b"DESCRYPT",CBC,b"\0\0\0\0\0\0\0\0",pad=None,padmode=PAD_PKCS5) data="Pleaseencryptmydata" k=des("DESCRYPT",CBC,"\0\0\0\0\0\0\0\0",pad=None,padmode=PAD_PKCS5) d=k.encrypt(data) print"Encrypted:%r"%d print"Decrypted:%r"%k.decrypt(d) assertk.decrypt(d,padmode=PAD_PKCS5)==dat
以下是本人使用的例子,使用CBC加密的方式:
importbase64 frompyDesimport* Des_Key="BHC#@*UM"#Key Des_IV="\x22\x33\x35\x81\xBC\x38\x5A\xE7"#自定IV向量 defDesEncrypt(str): k=des(Des_Key,CBC,Des_IV,pad=None,padmode=PAD_PKCS5) EncryptStr=k.encrypt(str) returnbase64.b64encode(EncryptStr)#转base64编码返回
PS:关于加密解密感兴趣的朋友还可以参考本站在线工具:
MD5在线加密工具:
http://tools.jb51.net/password/CreateMD5Password
迅雷、快车、旋风URL加密/解密工具:
http://tools.jb51.net/password/urlrethunder
在线散列/哈希算法加密工具:
http://tools.jb51.net/password/hash_encrypt
在线MD5/hash/SHA-1/SHA-2/SHA-256/SHA-512/SHA-3/RIPEMD-160加密工具:
http://tools.jb51.net/password/hash_md5_sha
在线sha1/sha224/sha256/sha384/sha512加密工具:
http://tools.jb51.net/password/sha_encode
更多关于Python相关内容感兴趣的读者可查看本站专题:《Python编码操作技巧总结》、《Python数据结构与算法教程》、《PythonSocket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》
希望本文所述对大家Python程序设计有所帮助。