zoukankan      html  css  js  c++  java
  • 加密

    # 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="))
  • 相关阅读:
    websocket1
    webpack 入门三
    weboack 入门二
    webpack 入门一
    输入一个url发生了什么
    http详解
    JavaScript对象详解
    javaScript垃圾回收机制
    js数据类型与隐式类型转换
    iOS证书申请、AppStore上架流程
  • 原文地址:https://www.cnblogs.com/sea-stream/p/11495209.html
Copyright © 2011-2022 走看看