接口测试 RSA 加密跟 MD5 加密在 PYTHON2.7 跟 PYTHON3.0 的实现

MmoMartin · 2018年07月16日 · 最后由 陈子昂 回复于 2018年09月01日 · 1598 次阅读

python2.7 的 RSA 加密代码

# -*- coding: utf-8 -*-
import rsa
import os
import base64
def rsa_encrypt(message):
    file_path = (os.path.dirname(os.path.realpath(__file__)) + "\\publicKey.pem")#获取当前目录的publicKey.pem文件

    with open(file_path) as f:
        key = f.read()
        pubkey = rsa.PublicKey.load_pkcs1_openssl_pem(key)
        # 默认加密长度为117
        start = 0
        crypto = ""
        # 分段加密
        while True:
            end = start + 117
            if end > len(message):
                end = len(message)
            p = rsa.encrypt(message[start:end], pubkey)
            crypto += p
            start = end
            if start == len(message):
                break
        crypt_content = base64.b64encode(crypto)
    return crypt_content

python3 的 RSA 加密代码

# -*- coding: utf-8 -*-
import rsa
import os
import base64
def rsa_encrypt(message):
    file_path = (os.path.dirname(os.path.realpath(__file__)) + "\\publicKey.pem")#获取当前目录的publicKey.pem文件
    message = bytes(message,encoding="utf-8")
    with open(file_path) as f:
        key = f.read()
        pubkey = rsa.PublicKey.load_pkcs1_openssl_pem(key)
        # 默认加密长度为117
        start = 0
        crypto = b""
        # 分段加密
        while True:
            end = start + 117
            if end > len(message):
                end = len(message)
            p = rsa.encrypt(message[start:end], pubkey)
            crypto += p
            start = end
            if start == len(message):
                break
        crypt_content = base64.b64encode(crypto)
    return crypt_content

MD5 加密代码

# -*- coding: utf-8 -*-
import  hashlib
password = '000000'
password = hashlib.md5(password).hexdigest()

注意点

RSA 公私鈅格式有两种,本文使用的是 pkcs8 的格式,如:demo 上的 publicKey.pem 文件
-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCiIeSCfxWrzFAdhWyAeCcFUY7jkqfMftcnoVBmYFvQGRGrYEHbPXu5HeO71sY0wF1N4hOq3MYlCKgnoux6vJIEy/z44TiZHV12JbqtvZRPz72ssmgEgHr1YilJJMQt7M1GstcDh9TgH7RzbZYTOv0MIalGc+umThMqQV3t4WTuJwIDAQAB
-----END PUBLIC KEY-----

RSA 的 pkcs1 格式

#公钥
-----BEGIN RSA PUBLIC KEY-----
-----END RSA PUBLIC KEY-----
# 私钥
-----BEGIN RSA PRIVATE KEY-----
-----END RSA PRIVATE KEY-----
共收到 1 条回复 时间 点赞
1楼 已删除

挺好的啊。就是可以在抽象封装下

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册