简友广场散文软件测试知识

4.加密函数编写

2022-11-01  本文已影响0人  小小一颗卤蛋

加密算法分类:

md5加密算法:

import hashlib
def get_md5_data(data:str,salt=''):
"""
param data: 被加密的数据
param salt:盐值 ,默认为空
return:返回加密得到的16进制数据的密文
"""
  #1.创建md5实例
  md5=hashlib.md5()
  data=f'{data}{salt}'   # data= data+salt---要类型一致
  #2.调用加密函数
  md5.update(data.encode('utf-8'))# 转为统一编码
  #3.返回加密的密文
  return md5.hexdigest() # 加密后的结果---16进制值
  

RSA加密

RSA加密流程.png

RSA加密的代码流程:

1、 安装对应的库: cmd --pip install pycryptodome
2、加密处理流程:

加密过程如下:

import pycryptodome
class RsaEncodecrypt:
  def __init__(self,file_path='./'):
    self.file_path = file_path
  def encrypt01(self,crypt_data):
    #1,先获取/加密公钥文件--公钥数据
    with open(f'{self.file_path}public.pem','rb')as fo: # rb 以字节形式读取
      # 2 .获取公钥的内容
      key_content_byte = fo.read()
      # 3,把输入的明文密码转为bytes类型
      crypt_data= crypt_data.encode('utf-8')
      #4,需要把公钥的内容给对应的函数--RAS公钥对象
      public_key =RSA.importKey(key_content_bytes)
      #5,使用公钥对象,生成一个加密对象 cipher
      cipher =  PKCS1_cipher.new(public_key)
      # 6.调用加密方法encrypt(必须是bytes数据)
      encrypt_text = cipher.encrypt(crypt_data)
      #7.使用base64编码--解码--字符串
       return base64.b64encode(encrypt_text).decode('utf-8')

  """
项目--RSA加密接口
url = 'http://121.41.14.39:8082/account/loginRsa'
参数:
    username  账号
    password: RSA加密的结果
        1- yuanyuabn通过md5加密成密文--a
        2- 使用RSA的公钥加密(a)
    sign 签名
        md5(username+password密文)
加密库安装:
    # pip install  pycryptodome -i https://douban.com/simplie
加密流程:
    1- 首先需要一个公钥
"""
from Crypto.PublicKey import RSA
from Crypto.Cipher import PKCS1_v1_5 as PKCS1_cipher #重命名
import base64
class RSAendecrypt:
    def __init__(self,file_path='./'):
        self.file_path = file_path
    #1-创建密钥对:公钥  私钥
    #2-加密操作
    def encrypt02(self,crypt_data):
        #1-打开读取这个公钥文件
        with open(self.file_path+'public.pem') as fo:
            key = fo.read()#2-读取内容----字符串类型
            public_key = RSA.importKey(key)#RSA里面importkey---变成公钥
            cipher = PKCS1_cipher.new(public_key)#生成对象
            rsa_text = base64.b64encode(cipher.encrypt(bytes(crypt_data.encode('utf-8'))))#加密操作
            #需要解码
            return rsa_text.decode('utf-8')
 
上一篇 下一篇

猜你喜欢

热点阅读