如果在python脚本中出现明文密码,就不符合安全的需求,而md5加密又不够安全,推荐RSA加密,原理不多说,直接说怎么弄
首先执行这个函数,生成公钥和私钥并写入文件
#pip3 install pycryptodome
from Crypto import Random
from Crypto.PublicKey import RSA
from Crypto.Cipher import PKCS1_v1_5
import base64
#生成公钥和私钥
def generate_keys():random_generator = Random.new().read# rsa算法生成秘钥对实例对象:1024是秘钥的长度rsa = RSA.generate(1024, random_generator)#生成私钥并保存到pem文件 以二进制格式private_pem = rsa.exportKey()with open("/root/.ssh/private_key.pem", "wb") as f: f.write(private_pem)#生成公钥并保存到pem文件 以二进制格式public_pem = rsa.publickey().exportKey()with open("/root/.ssh/public_key.pem", "wb") as f:f.write(public_pem)
加密函数
#加密
def encrypt_data(original_data):with open("/root/.ssh/public_key.pem","r") as f:public_key = RSA.import_key(f.read())cipher_rsa = PKCS1_v1_5.new(public_key)cipher_text = base64.b64encode(cipher_rsa.encrypt(original_data.encode('utf-8'))) return cipher_text.decode('utf-8')encrypted_data=encrypt_data('xxxxxxxxxxxxxxx')
解密函数
def decrypt_data(encrypted_data):random_generator = Random.new().readwith open("/root/.ssh/private_key.pem","r") as f:private_key = RSA.import_key(f.read())cipher_rsa = PKCS1_v1_5.new(private_key)text = cipher_rsa.decrypt(base64.b64decode(encrypted_data),random_generator)return text.decode('utf-8')