Linux部署python web项目Flask + gunicorn + nginx

一、安装python&使用虚拟环境

参见Arch Linux 定时运行python脚本(crontab)

二、python程序重要参数加密

2.1 非对称加密(RSA)

用某用户密钥加密后所得的信息,只能用该用户的解密密钥才能解密。如果知道了其中一个,并不能计算出另外一个。因此如果公开了一对密钥中的一个,并不会危害到另外一个的秘密性质。称公开的密钥为公钥;不公开的密钥为私钥。
参考“公钥加密”

  • 生成RSA密钥对
  • 私钥存储在服务器上(运维人员做好秘钥管理)
  • 公钥公开给开发人员,用于代码中进行重要配置加密

2.2 生成密钥对

安装pycryptodome

pip install pycryptodome
from Crypto.PublicKey import RSA

key = RSA.generate(2048)
private_key = key.export_key()
with open("private.pem", "wb") as f:
    f.write(private_key)

public_key = key.publickey().export_key()
with open("public.pem", "wb") as f:
    f.write(public_key)

2.4 以连接数据库参数加密为例

【RSA加密/解密】PKCS1_OAEP和PKCS1_v1_5

2.4.1 工具类RSA.py

from Crypto.Cipher import PKCS1_OAEP as PKCS1_cipher
from Crypto.PublicKey import RSA
# 读取密钥
def get_key(path):
    with open(path) as f:
        pem_data = f.read()
        return RSA.importKey(pem_data)
# 公钥加密
def encrypt(msg, pub_path):
    key = get_key(pub_path)
    cipher = PKCS1_cipher.new(key)
    encrypt_msg = cipher.encrypt(msg.encode("utf-8"))
    return base64.b64encode(encrypt_msg).decode()
# 私钥加密
def decrypt(msg, pri_path):
    key = get_key(pri_path)
    cipher = PKCS1_cipher.new
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值