专栏电商日志财经减肥爱情
投稿投诉
爱情常识
搭配分娩
减肥两性
孕期塑形
财经教案
论文美文
日志体育
养生学堂
电商科学
头戴业界
专栏星座
用品音乐

Python实现各种加密,接口加解密不说难

  Hi,大家好。我们在接口自动化测试项目中,有时候需要一些加密。今天给大伙介绍Python实现各种加密,接口加解密再也不愁。目录
  一、项目加解密需求分析
  六、Python加密库PyCryptodome一、项目加解密需求分析1、网络数据传输面临的问题
  私信小编01即可获取大量Python学习资源
  网络安全涉及很多方面,而网络数据的安全传输通常会面临以下几方面的威胁。数据窃听与机密性:怎样保证数据不会因为被截获或窃听而暴露?数据篡改与完整性:怎样保证数据不会被恶意篡改?身份冒充与身份验证:怎样保证数据交互双方的身份没有被冒充?2、解决方案
  针对网络数据安全问题,可以用以下几种数据加密方式来解决(每种数据加密方式有多种不同的算法实现):数据加密方式描述主要解决的问题常用算法
  对称加密
  指数据加密和解密使用相同的密钥
  数据的机密性
  DES,AES
  非对称加密
  也叫公钥加密,指数据加密和解密使用不同的密钥密钥对儿
  身份验证
  DSA,RSA
  单向加密
  指只能加密数据,而不能解密数据
  数据的完整性
  MD5,SHA系列算法3、Python加密模块
  主要用到以下几个模块:模块名描述
  hashlib
  主要提供了一些常见的单向加密算法(如MD5,SHA等),每种算法都提供了与其同名的函数实现。
  hmac
  提供了hmac算法的实现,hamc也是单向加密算法,但是它支持设置一个额外的密钥(通常被称为salt)来提高安全性
  secrets
  这是Python3。6中新增的模块,用于获取安全随机数。
  base64
  该模块主要用于二进制数据与可打印ASCII字符之间的转换操作,它提供了基于Base16,Base32,和Base64算法以及实际标准Ascii85和Base85的编码和解码函数。
  pycrypto
  支持单向加密、对称加密和公钥加密以及随机数操作,这是个第三方模块,需要额外安装。4、字符串和Bytes互相转化
  我们所说的加密方式,都是对二进制编码的格式进行加密的,对应到Python中,则是我们的Bytes。所以当我们在Python中进行加密操作的时候,要确保我们操作的是Bytes,否则就会报错。将字符串和Bytes互相转换可以使用encode()和decode()方法。(1)使用encode()编码encode():str对象的方法,用于将字符串转换为二进制数据(即bytes),也称为编码。
  输出结果:原字符:ITester软件测试小栈字符转换成二进制:bITester(2)使用decode()解码
  decode():bytes对象的方法,用于将二进制数据转换为字符串,也称为解码。
  在设置解码采用的字符编码时,需要与编码时采用的字符编码一致。使用decode()方法时,同样不会修改原字符串。二、Base64加密1、简介
  Base64是密码学的基石,用64个字符来表示任意二进制数据的方法。可以将任意的二进制数据进行Base64编码。所有的数据都能被编码为并只用65个字符就能表示的文本文件(65字符:AZaz09)。2、编码原理
  1。将所有字符转化为ASCII码。
  2。将ASCII码转化为8位二进制。
  3。将二进制3个归成一组(不足3个在后边补0)共24位,再拆分成4组,每组6位。
  4。统一在6位二进制前补两个0凑足8位。
  5。将补0后的二进制转为十进制。
  6。从Base64编码表获取十进制对应的Base64编码。3、Python中base64的使用
  Python内置的base64模块可以直接进行base64的编解码。
  输出结果:加密前为:ITester软件测试小栈加密后为:SVRlc3Rlcui9rS7tua1iivleWwjagiA三、MD5加密1、简介
  MD5加密即messagedigestalgorithm5(信息摘要算法),即信息摘要算法,可以将一个字符串,或文件,或压缩包,执行md5后,就可以生成一个固定长度为128bit的串。2、用途加密注册用户的密码。网站用户上传图片文件后,将MD5值作为文件名。(MD5可以保证唯一性)keyvalue数据库中使用MD5值作为key。比较两个文件是否相同。(在下载资源的时候,发现网站提供了MD5值,就是用来检测文件是否被篡改)
  3、Python中MD5的使用
  由于MD5模块在python3中被移除,在python3中使用hashlib模块进行md5操作。(1)简单示例
  输出结果:加密前为:ITester软件测试小栈加密后为:45dc3931b34133a1ebd17e376884b35b(2)登录接口加密
  md5进行用户登录网站进行密码加密的示例:importsocket,struct,jsonipport(127。0。0。1,8000)backlog5buffersize1024tcpclientsocket。socket(socket。AFINET,socket。SOCKSTREAM)tcpclient。connect(ipport)whileTrue:cmdinput(:)ifnotcmd:continue发送数据tcpclient。send(cmd。encode(gbk))第一步:先收报头headertcpclient。recv(4)第二步:从报头中解析(header数据的长度)headersizestruct。unpack(i,header)print(收到报头长度,headersize)第三步:收到报头解析出对真实数据的描述信息headerjsontcpclient。recv(headersize)datajson。loads(headerjson)print(收到报头内容,data)totalsizedata〔totalsize〕第三步:接收真实的数据recvsize0recvdatabwhilerecvsizetotalsize:datatcpclient。recv(buffersize)recvdatadatarecvsizelen(recvdata)print(接收数据,recvdata。decode(gbk,ignore))如果设置为ignore,则会忽略非法字符;tcpclient。close()关闭四、sha1加密1、简介
  SHA1的全称是SecureHashAlgorithm(安全哈希算法)。SHA1基于MD5,加密后的数据长度更长,它对长度小于264的输入,产生长度为160bit的散列值。比MD5多32位,因此,比MD5更加安全,但SHA1的运算速度就比MD5要慢。
  2、Python中Sha1的使用
  示例如下:
  输出结果:加密前为:ITester软件测试小栈加密后为:e933b46df326c0bb27cf075faf1d05eb92185f13五、secrets加密1、简介
  secrets模块是Python3。6新增的内置模块,它可以生成用于管理密码、账户验证信息、安全令牌和相关秘密信息等数据的密码强随机数。总体来讲,我们可以通过secrets模块完成两种操作:生成安全随机数;生成一个笃定长度的随机字符串,可用作令牌和安全URL;
  2、Python中secrets的使用(1)生成随机密码
  生成一个由数字和字母组成的随机8位密码:
  输出结果:I4S8Nn81(2)生成包含安全令牌的URL
  生成一个用于找回密码应用场景的,包含一个安全令牌的的临时URL。
  输出结果:https:ITester。comresetb81gTnkWHaOyIKqvEISLD1eHfYz8X5ptgYfhMBnbk六、Python加密库PyCryptodome1、简介
  PyCrypto是Python中密码学方面最有名的第三方软件包,2012年已停止。幸运的是,该项目的分支PyCrytodome取代了PyCrypto。2、DES加密(1)简介
  DES算法为密码体制中的对称密码体制,又被称为美国数据加密标准。DES是一个分组加密算法,典型的DES以64位为分组对数据加密,加密和解密用的是同一个算法。(2)使用
  安装和导入:安装:pipinstallpyDes导入:frompyDesimportdes,CBC,PADPKCS5
  示例:frompyDesimportdes,CBC,PADPKCS5importbinascii秘钥KEYkeiHG93defdesencrypt(s):DES加密:params:原始字符串:return:加密后字符串,16进制secretkeyKEY密码ivsecretkey偏移secretkey:加密密钥,CBC:加密模式,iv:偏移,padmode:填充desobjdes(secretkey,CBC,iv,padNone,padmodePADPKCS5)返回为字节secretbytesdesobj。encrypt(s,padmodePADPKCS5)返回为16进制returnbinascii。b2ahex(secretbytes)defdesdescrypt(s):DES解密:params:加密后的字符串,16进制:return:解密后的字符串secretkeyKEYivsecretkeydesobjdes(secretkey,CBC,iv,padNone,padmodePADPKCS5)decryptstrdesobj。decrypt(binascii。a2bhex(s),padmodePADPKCS5)returndecryptstrprint(desencrypt(ITester))print(desdescrypt(b248ebd299b31dd1))
  输出结果:bb248ebd299b31dd1bITester3、3DES加密
  3DES(或称为TripleDES)是三重数据加密算法(TDEA,TripleDataEncryptionAlgorithm)块密码的通称,是DES向AES过渡的加密算法。4、AES加密
  高级加密标准(AdvancedEncryptionStandard,缩写:AES),在密码学中又称Rijndael加密法。速度快,编码紧凑。fromCryptodome。CipherimportAESfromCryptodomeimportRandomfrombinasciiimporta2bhexdataITester软件测试小栈密钥必须为16(AES128),24,32keybthisisa16key生成长度等于AES块大小的不可重复的密钥向量ivRandom。new()。read(AES。blocksize)print(iv)使用key和Iv初始化AES对象mycipherAES。new(key,AES。MODECFB,iv)print(mycipher)cipmycipher。encrypt(data。encode())将iv加到加密的密钥开头ciptextivcipprint(ciptext)解密需要key和iv生成AES对象,取前16位是ivmydecryptAES。new(key,AES。MODECFB,ciptext〔:16〕)取后16位是密钥decrytextmydecrypt。decrypt(ciptext〔16:〕)print(decrytext。decode())
  输出结果:bHzpClCryptodome。Cipher。modecfb。CfbModeobjectat0x10df91eb0bHzpClUUjd4ITester七、RSA加密1、简介
  RSA加密算法是一种非对称加密算法,使用openssl,keytools等工具生成一对公私钥对,使用被公钥加密的数据可以使用私钥来解密。
  示例:importrsarsa加密defrsaEncrypt(str):生成公钥、私钥(pubkey,privkey)rsa。newkeys(512)print(公钥:,pubkey)print(私钥:,privkey)明文编码格式contentstr。encode(utf8)公钥加密cryptorsa。encrypt(content,pubkey)return(crypto,privkey)rsa解密defrsaDecrypt(str,pk):私钥解密contentrsa。decrypt(str,pk)concontent。decode(utf8)returncon(a,b)rsaEncrypt(ITester软件测试小栈)print(加密后密文:)print(a)contentrsaDecrypt(a,b)print(解密后明文:)print(content)
  输出结果:公钥:PublicKey(6814529323241172850728335141247508717269277267494229901386594011231139785660903876597435728831384748788754841049799215688731419667333062231824933307206319,65537)私钥:PrivateKey(6814529323241172850728335141247508717269277267494229901386594011231139785660903876597435728831384748788754841049799215688731419667333062231824933307206319,65537,6454447002622527176039652037136241453160399729960737093529936320752579012730277408644466653521211901816393814636252571192738395899494415991466200889769361,4797673045355672432997022168818242182770881041225501784151212772936794554333725043,1420382185034032902338315580117109933359732257353521366383139403561669333)加密后密文:bk7,gt;:3?s1VPBFhO}T2解密后明文:ITester八、总结
  上面讲了多种加密方法,我们简单总结下:数据加密方式大体分为3类:单向加密、对称加密和公钥加密(非对称加密)。这3类加密方式都各自包含不同的加密算法,如单向加密方式中包含MD5、SHA1、SHA256等,这些算法又称为哈希算法或散列算法或数据摘要算法。Python内置的hashlib和hmac只提供了单向加密的各种算法实现,如果要做对称加密或者公钥加密操作需要安装第三方扩展模块,常用的是pycrypto模块。另外,hmac允许在使用哈希算法计算数据摘要时使用一个密钥。随机数操作可以通过三个模块来实现,Python内置的random模块和secrets模块(Python3。6中才可用),还可以通过pycrypto模块中的Crypto。Random子包中的模块来完成。base64只适合编码小段数据,且不能用于数据加密(算法是公开的,且没有密钥,所有人都可以解码)。pycrypto是一个加密算法库,几乎所有的加密算法都可以在它里面找到相应的实现模块。

钱德勒帕森斯一个躺着就把钱赚了的高富帅NBA有许许多多传奇人物,有的是因为球机,有的是因为数据,有的是因为荣誉,而今天介绍的这一位是因为让着就赚了近一亿美金。没错,他就是钱德勒帕森斯,一位真正的高富帅。帕森斯出生于19佟丽娅的隐形离婚成本有多高?离开陈思诚之后,很难再嫁出去了自从宣布了陈思诚和佟丽娅离婚之后,不少人都为丫丫感到高兴,毕竟陈思诚这个大渣男,能跟他分手,佟丽娅也算是脱离苦海了,甚至由于孩子抚养费和夫妻共同财产的分割,佟丽娅也能给自己找回了点官宣!2022年东京羽毛球世锦赛国羽8人拒绝邀请,谌龙确认参加2022年羽毛球世锦赛将于8月22日至8月28日在日本东京举行,由于世锦赛的参赛名单是邀请制,由世界羽联向各协会队员发出邀请参加,而并非自主报名,目前国羽受到世界羽联邀请的队员达到郑恺鱼刺卡喉两天,苗苗勇拔鱼刺亲自救夫,两人变相秀恩爱郑恺与苗苗结婚后,生下一女,而且苗苗最近还怀上了二胎,相信再过几个月他们就要再有好消息告诉大家了。但在昨天(5月13日),苗苗在社交平台上分享了自己的视频,封面上还写着郑总卡刺记,德云二少郭汾瑒被全社专宠的小霸王,郭麒麟家产唯一竞争者敢当众说看德云社的相声还不如看动画片,恐怕也就只有口出狂言的郭汾瑒能做到?2021年,王惠曾带着6岁的郭汾瑒视察天津德云社,坐在观众席的他在看岳云鹏徒弟的演出时,发出了如上感慨。视钟楚红含泪追忆亡夫你的挚爱,让我觉得每一个琐碎日子都是甜的关注我,每天带来名人感动的故事!钟楚红,被誉为香港的玛丽莲梦露,那一头卷曲的头发充满风情的妩媚,再加上一张美丽动人的脸和真诚低调的个性,为华人世界公认的性感女神。在上世纪80年代,吃鸡甜心娃娃中转盘抢先看,3款人偶服太萌了,M762升级枪大家好,欢迎来到由小鱼干开讲的吃鸡新鲜事速报,这段时间,小鱼干发现大部分玩家都在留意将于5。20开启的和平小店返场军需,讨论热度也是居高不下。不过在此之前,光子自然是不会停止出新军26年后再看马玉琴和李玉成,才明白他们结婚是最好的选择人们总说,真正的爱情是不分年龄,国籍甚至是性别的。现在年龄相差十分大的爱情或婚姻比比皆是,比如导演张纪中和他的80后小娇妻杜星霖,二人虽然相差31岁,可是同甘共苦的创业经历令人动容厉害了!祝融号发现火星上真的有水的存在,比NASA更准确吗?祝融号火星车立功啦!关于火星上到底有没有水的问题,一直以来都是科学家关注的焦点,美国火星探测车在火星上多次发现了水的证据。近日,中国祝融号火星车在火星上成功发现含水的矿物,祝融号火蔚来股权曝光腾讯持股9。8有5。6的投票权雷递网雷建平5月14日报道刚刚在港交所介绍上市的蔚来汽车(纽交所NIO港交所9866),又马不停蹄的要去敲钟。蔚来汽车日前宣布,将于2022年5月20日(新加坡时间)于新加坡交易所曾经大名鼎鼎的暴风影音,如今你还记得吗继日前夹缝生存苦亦甜的乐视视频被执行后,暴风影音也紧随其后,并且两者前后不过一周的时间。近日据公开资料显示,暴风集团(暴风影音运营主体公司)于5月7日再次新增被执行人信息,执行标的
少女和孕妇的区别在哪里?欧阳娜娜和戚薇对比,几组图片告诉你导语女生在不同时期有着不同的称呼,刚出生的宝宝叫做小姑娘,稍微长大一点就是女生,等到结婚以后就叫女性。那么我们能区分一个女生结婚还是没结婚呢?其实可以从她们的胯部就可以看出区别。有新赛季需要证明自己的球员,哈登态度明显,锡安还值得令人期待?休赛期对于每支球队最重要的的工作就是交易补强球队,而对于球员来说通过这夏天的努力训练来弥补技术上不足,新赛季取得更好的成绩,或来证明自己詹姆斯。哈登上赛季经历了换队风波后,哈登来到双赢交易!篮网队1换9方案出炉,杜兰特或联手锡安CJ冲冠自从杜兰特向篮网队提出交易申请后,就吸引了全联盟的关注,但由于篮网队要价一个全明星以及一位拥有全明星潜质的年轻球员或数个首轮选秀权,这也吓退了NBA大部分球队,但即使如此,联盟中能大衣哥被一侏儒男追着跑!对方上门提亲,喊大衣哥岳父大人大衣哥被一侏儒男追着跑!对方上门提亲,喊大衣哥岳父大人熟悉大衣哥的都知道,他的儿子朱小伟经历过一段失败的婚姻之后,又找到了一位新女朋友,两人现在已经订婚,不日即将举办婚礼。只是,儿少女和孕妇的区别在哪里?欧阳娜娜和戚薇对比,几组图片告诉你导语女生在不同时期有着不同的称呼,刚出生的宝宝叫做小姑娘,稍微长大一点就是女生,等到结婚以后就叫女性。那么我们能区分一个女生结婚还是没结婚呢?其实可以从她们的胯部就可以看出区别。有张茜穿格子裙现身,皮肤蜡黄有色差,但在张卫健眼里依旧是公主张卫健和老婆张茜,一直是娱乐圈里面的模范夫妻,两人结婚多年虽然没有生孩子,但是感情一直恩爱如初,一点花边新闻没有!而且随着年龄的增长,张卫健更加地爱惜张茜,在他眼里永远都保持着宠爱张茜穿格子裙现身,皮肤蜡黄有色差,但在张卫健眼里依旧是公主张卫健和老婆张茜,一直是娱乐圈里面的模范夫妻,两人结婚多年虽然没有生孩子,但是感情一直恩爱如初,一点花边新闻没有!而且随着年龄的增长,张卫健更加地爱惜张茜,在他眼里永远都保持着宠爱从郑智化到张学友,形式主义的正能量还要伤及多少人北京日报客户端评论员崔文佳连日来,郑智化与张学友两位老牌歌手突然被推上了舆论风口浪尖,前者为自己的歌词被修改而气愤不已,后者为自己的发言被曲解而颇感无奈。透过两档风波,我们又一次感从郑智化到张学友,形式主义的正能量还要伤及多少人北京日报客户端评论员崔文佳连日来,郑智化与张学友两位老牌歌手突然被推上了舆论风口浪尖,前者为自己的歌词被修改而气愤不已,后者为自己的发言被曲解而颇感无奈。透过两档风波,我们又一次感河南旅游万万没想到,你是这样的泼水狂欢节夏天假期有无数种打开方式空调wifi西瓜短袖热裤泳池趴炎炎夏日就是要玩水!玩水!玩水!玩水!蝉鸣阵阵热浪来袭想去拥抱活力夏日,释放爆表的激情就赶紧约上家人朋友一起来宝泉泼水狂欢节吧河南旅游万万没想到,你是这样的泼水狂欢节夏天假期有无数种打开方式空调wifi西瓜短袖热裤泳池趴炎炎夏日就是要玩水!玩水!玩水!玩水!蝉鸣阵阵热浪来袭想去拥抱活力夏日,释放爆表的激情就赶紧约上家人朋友一起来宝泉泼水狂欢节吧
友情链接:快好找快生活快百科快传网中准网文好找聚热点快软网