程序员的资源宝库

网站首页 > gitee 正文

加密 加密文件怎么弄

sanyeah 2024-03-29 17:53:04 gitee 6 ℃ 0 评论

 

# coding=utf-8

from Crypto.PublicKey import RSA
from Crypto.Cipher import PKCS1_OAEP, PKCS1_v1_5
import base64
from urllib import parse

import Crypto.Cipher.AES
import Crypto.Random
import os
import sys
from Crypto.Cipher import AES
from Crypto.Cipher import AES
from Crypto import Random
import binascii
import hashlib

def decrypt_data(fp,inputdata, code="123456"):
    # URLDecode
    data = parse.unquote(inputdata)
    # base64decode
    data = base64.b64decode(data)
    private_key = RSA.import_key(open(fp+"/my_private_rsa_key.bin").read(),passphrase=code)
    # 使用 PKCS1_v1_5,不要用 PKCS1_OAEP
    # 使用 PKCS1_OAEP 的话,前端 jsencrypt.js 加密的数据解密不了
    cipher_rsa = PKCS1_v1_5.new(private_key)
    # 当解密失败,会返回 sentinel
    sentinel = None
    ret = cipher_rsa.decrypt(data, sentinel)
    return ret

def encrypt_data(fp,content=b"123456"):
    # 加载公钥
    recipient_key = RSA.import_key(open(fp+"/my_rsa_public.pem").read())
    cipher_rsa = PKCS1_v1_5.new(recipient_key)
    en_data = cipher_rsa.encrypt(content)
    c=base64.b64encode(en_data)
    return c


fp="/".join(os.path.dirname(os.path.abspath(__file__)).split("/")[:-1])+"/lib"

en=encrypt_data(fp)
text = en.decode()  # 待加密文本
print(text)
hash = hashlib.md5()
hash.update(text.encode('utf-8'))
print(hash.hexdigest())

print("*"*20)

#编码
encodestr = base64.b64encode(text.encode())
print(encodestr.decode())
#解码
decodestr = base64.b64decode(encodestr)
print(decodestr.decode())

print("*"*20)


print(decrypt_data(fp,"fhZf1TKEk2HiAG3BW/kuhuSXdCvSXzxW29re1OGgtQVUyO++l6KwxorpPQdZRGgu7E4muN5HyCBRBI6QTth+RGaNnlh/7DP8y3SmHjWyiYbXxAGCY5b8Vzog3IAqOZWF1QTrU7Azn+HoMe4MO4MXmH3uNXEi63nUMJlytcEpi14="))

 

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表