安庆大理运城常德铜陵江西
投稿投诉
江西南阳
嘉兴昆明
铜陵滨州
广东西昌
常德梅州
兰州阳江
运城金华
广西萍乡
大理重庆
诸暨泉州
安庆南充
武汉辽宁

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

1月25日 星宿房投稿
  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,:3?s1VPBFhO}T2解密后明文:ITester八、总结
  上面讲了多种加密方法,我们简单总结下:数据加密方式大体分为3类:单向加密、对称加密和公钥加密(非对称加密)。这3类加密方式都各自包含不同的加密算法,如单向加密方式中包含MD5、SHA1、SHA256等,这些算法又称为哈希算法或散列算法或数据摘要算法。Python内置的hashlib和hmac只提供了单向加密的各种算法实现,如果要做对称加密或者公钥加密操作需要安装第三方扩展模块,常用的是pycrypto模块。另外,hmac允许在使用哈希算法计算数据摘要时使用一个密钥。随机数操作可以通过三个模块来实现,Python内置的random模块和secrets模块(Python3。6中才可用),还可以通过pycrypto模块中的Crypto。Random子包中的模块来完成。base64只适合编码小段数据,且不能用于数据加密(算法是公开的,且没有密钥,所有人都可以解码)。pycrypto是一个加密算法库,几乎所有的加密算法都可以在它里面找到相应的实现模块。
投诉 评论

买二手手机需要注意哪些点呢?我来给大家详细分析分析目前二手手机市场还是比较乐观的,如果是一些不追求时尚潮流的到二手市场淘一款,性价比相对高一些的手机,比全新的要便宜很多,但是大家应该知道,不管是安卓也好,还是苹果也罢,水比较深……AMDRX6950XT旗舰显卡最新消息频率提升至2。5GHz据Videocardz消息,AMD将推出RX6900XT显卡的升级款RX6950XT,GPU频率更高,同时配备更快的显存。据报道,靠谱爆料人士Greymon55称,AMD……博鳌凝共识数字科技助力世界经济企稳复苏本报记者刘艳4月21日上午,博鳌亚洲论坛2022年年会开幕式在海南博鳌举行,国家主席习近平以视频方式发表主旨演讲。众多科技企业表示,在当前复杂严峻的国际形势背景下,……延迟的函数调用golanggo有一个特殊的语句defer,可以安排一个函数,在本函数返回之前,再执行。defer本身意思是推迟,延迟。看下面这个例子,defer了second这个函数,所以输……电商平台的SEO如何来做?在讲课程SEO中,发现学生都是一知半解的,尤其是很多童鞋在做不仅在做SEO相关工作时,对SEO不太清楚,更不用说能够举一反三,对电商平台SEO有所认知。其实无论是用户使用……iPodtouch宣布停产之后秒售罄网友库克真是奇才iPod产品线作为苹果再一次发家的产品,意义重大,尤其是后期的iPodTouch产品,甚至可以说它是当今iPhone的前身,但苹果官方还是在昨日宣布将会正式停产iPodTouc……拼多多上的牙套怎么样?知乎网友提问:拼多多上的牙套怎么样?最近真的很想矫正牙齿,总觉得牙齿不齐快成了心病。但是学生党真的没钱,一咨询实体店都是上万,心好痛。后来在拼夕夕看到一家牙套,哪家……阿里强奸案张勇紧急发声能否挽回?这事对阿里有哪些影响?撰稿熊高杰编审陈成编发1号纪实这是一个很恶心的事,这是一个令人震惊、愤怒的事情。一起阿里女员工涉嫌被强奸猥亵案一时间沸沸扬扬,引发广泛关注和热议,连明星李若彤……Python实现各种加密,接口加解密不说难Hi,大家好。我们在接口自动化测试项目中,有时候需要一些加密。今天给大伙介绍Python实现各种加密,接口加解密再也不愁。目录一、项目加解密需求分析六、Python……资讯英伦国产?注资4。34亿,吉利控股在四川成立新能源汽车公文:懂车帝原创常思玥〔懂车帝原创行业〕日前,懂车帝获悉,四川英伦新能源汽车科技有限公司(以下简称四川英伦)成立,注册资本4。34亿元人民币,从股权结构来看,四川英伦是浙江……你们家的京东云路由器,一天获取多少积分,家里宽带如何?估计很多朋友都不知道京东云路由器有什么作用,但是今天我告诉你,它可以用来赚钱,是实实在在的财富。在使用京东云路由器的时候会产生积分,积分可以兑换成为京豆,兑换比例为1积分……亚马逊正研发无线耳机?还要和AirPods竞争无线耳机领域或将迎来一位新玩家。彭博社引援知情人士消息称,亚马逊正在研发无线耳机,将配备语音助手Alexa,有望跟苹果公司的AirPods竞争。该名知情人士表示,这……
面对特斯拉声明质疑,车主霸气反怼不要车不要钱只要一个公道英国科技赋能教育看了理想ONE,感叹插电式混动比增程式真的更靠谱大学生选错笔记本电脑后悔四年?求求你先看这篇指南后再做决定营收巨亏近10亿,王卫身家缩水1340亿,顺丰如何度过至暗时热点解读1。锂盐价格2。新能源车3。镍价下跌?4。下周主线曝OPPOReno7系列新消息不断,Reno6爆降至超低新价充电跟加油一样快,埃安超充技术发布,充电五分钟续航200公里区块链和智能合约,以太坊开发,183位开发者整理,知识体系汇风骏5长货箱走进怀化7。88万的价格1。82米的货箱引得关注在破坏性蚂蚁入侵德克萨斯之后,一种杀手真菌即将来临家用热门WIFI6评测父母双亡,唯一的姐姐要抚养年幼弟弟吗?人性的幽暗让人无法直视一件读书趣事作文400字宁德时代,一家新万亿巨头青春即逝作文300字虎毒不食子!这个生父从15楼推下一双儿女小孩睡觉落枕怎么回事?小孩睡觉落枕了怎么办?小学语文常考成语填空基础知识,很实用。。。。大快人心!各国选手联合围剿韩国短道速滑队孩子假期沉迷于玩手机怎么办孩子假期沉迷于玩手机怎么解决工资收入证明碳酸饮料好处多多,你知道哪些?循环水过滤器的优缺点(循环水无阀过滤器的原理)

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找七猫云易事利