接口测试--加密算法

1.加密算法的分类

  a.哈希算法:md5,不可逆(即不可解密)

          例如:

            加盐:abc明文efg --------md5加密-------->sdfsdfsfsfadfdsffasdf

  b.对称加密算法:aes,加密解密速度快

          例如:

            加密   123456(明文)-----------(密钥00000)------------sdfadlfsfsdfdfsdfdsf(密文)   

            解密    sdfadlfsfsdfdfsdfdsf(密文)  -----------(密钥00000)------------123456(明文)

            总结:加密与解密时密钥是同一个

  c.非对称加密算法:rsa,加密速度比较慢

          例如:            

              加密   123456(明文)-----------(公钥11111)------------sdfadlfsfsdfdfsdfdsf(密文)    

               解密    sdfadlfsfsdfdfsdfdsf(密文)  -----------(私钥88888)------------123456(明文)

               总结:加密与解密时密钥不一样

base64编码,url编码算什么?

2.加密算法使用场景

  用户登录:md5/非对称 rsa

  数据传输的一致性:md5

  数据库表存储:md5(双重)/自定义

3.代码示例

md5加密 

import hashlib

passwd='123456'
md5_obj=hashlib.md5()
md5_obj.update(passwd.encode(encoding="utf-8"))
print(md5_obj.hexdigest())

#运行结果
C:\Users\ipharmacare\python37\python.exe C:/Users/cl/pythonstudy/python3/加密/demo_md5.py
e10adc3949ba59abbe56e057f20f883e

进程完成,退出码 0 

rsa加密  

安装命令:pip install rsa

import rsa

#加密字符串
passwd='123456'
#示例化加密对象
(pubkey,privkey)=rsa.newkeys(1024)
#用公钥加密
pwd=rsa.encrypt(passwd.encode(),pubkey)
#加密后的结果
print(pwd.hex())

#用私钥解密
depwd=rsa.decrypt(pwd,privkey)
print(depwd.decode('utf-8'))

# 运行结果
C:\Users\ipharmacare\python37\python.exe C:/Users/cl/pythonstudy/python3/加密/demo_md5.py
9d13989a1803dbb703e8444ce40685cae10ad48289c8a652eeeda7fa0c8b2db039eab89502d77f658a0fcba0cedd503688f0fbc6829f1de1e62e57f149f4c2389965f90eff026cfa2585cf7f3f237e78b4c2d56a7b64af9b66817a51464a7bd67fe487ca9e0854a61dc46229155018624cdf36dcdac5d21b28d68d39e3629d89
123456

进程完成,退出码 0

 对同一个字符串进行两次加密,每次生成的密钥都不一样,但是解密后输出的内容是一样的

import rsa

#加密字符串
passwd='123456'
#示例化加密对象
(pubkey,privkey)=rsa.newkeys(1024)
#用公钥加密
pwd=rsa.encrypt(passwd.encode(),pubkey)
#加密后的结果
print(pwd.hex())

#用公钥加密
pwd2=rsa.encrypt(passwd.encode(),pubkey)
#加密后的结果
print(pwd2.hex())

#用私钥解密
depwd=rsa.decrypt(pwd,privkey)
print(depwd.decode('utf-8'))

depwd=rsa.decrypt(pwd2,privkey)
print(depwd.decode('utf-8'))

#运行结果
0f592f4c2836871910bb591ec5cc8d41ee5e62ccab3b824e7c1b3596f6c7983928210ab5fe68c77fa681e69f7c9d1063667572d557470aaa347233a82d17cdf2318dab3a23ac2a44be51e1e042c36198d2b2391e623265367cd5092fa2a76d6a9702ff61b5ddf89c40ab8996af7132f9b48e9d07698321780ec6b1c5e3f6c7e7
13f2843f6ed2b3fd793737fc6eaa5bf26624685b7e83beda6434d8cea82afd7702f46f99362881087a719c4df7e8a889ed39bda75b6b9b8220b2c1a091b497bf6c9069e1d0789892a7d4e31a2c9d45beb27ef01d2dbcff75ed7f8d7a93315833f580f3641cde86ff8d5153fe95c4ec387e72bdb5248801c5dc69dc9cc4a55e44
123456
123456

base64加密解密

import base64

pwd='change'
#加密
pwd_b=pwd.encode('utf-8') #将字符串类型转换为字节类型
print(pwd_b)
rlt=base64.b64encode(pwd_b) #传参必须是字节类型
print(rlt)
#解密
rlt_decode=base64.b64decode(rlt).decode('utf-8')
print(rlt_decode)

#运行结果:
C:\Users\ipharmacare\python37\python.exe C:/Users/cl/pythonstudy/python3/加密/demo_md5.py
b'changle'
b'Y2hhbmdsZQ=='
changle

进程完成,退出码 0

  

  

  

  

 

 

 

 

              

posted @ 2020-08-27 09:46  pple  阅读(1082)  评论(0编辑  收藏  举报
以终为始,你期待的那天不会太遥远。