zoukankan      html  css  js  c++  java
  • 加密解密

    AES

    from Crypto.Cipher import AES
    def xxxxxx(message):
        key = b'asdfghjklzxcvbnm'   #16个字节
        cipher=AES.new(key,AES.MODE_CBC,key)
        ba_data=bytearray(message,encoding='utf8')
        v1= len(ba_data)
        v2=v1 % 16
        if v2 ==0:
            v3=16
        else:
           v3=16 - v2
        for i in range(v3):
            ba_data.append(v3)   #凑够16字节的倍数
        final_data=ba_data.decode('utf8')
        msg=cipher.encrypt(final_data)#要加密的字符串,必须是16字节或16字节的倍数
        return msg        #返回的是字节
    
    res=xxxxxx('jdaalfvnfjldvbfslgbhti')           #传入的必须是字符串
    print(res)
    from Crypto.Cipher import AES
    def xxx(message):
        key=b'asdfghjklzxcvbnm'   #相同的密文
        cipher=AES.new(key,AES.MODE_CBC,key)
        result=cipher.decrypt(message)
        data=result[0:-result[-1]]
        return str(data,encoding='utf8')
    res1=xxx(res)       #传入加密过后的字节
    print(res1)       #返回解密后的字符串

    RSA

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    import rsa
    import base64
     
     
    # ######### 1. 生成公钥私钥 #########
    pub_key_obj, priv_key_obj = rsa.newkeys(256)
     
    pub_key_str = pub_key_obj.save_pkcs1()
    pub_key_code = base64.standard_b64encode(pub_key_str)
     
    priv_key_str = priv_key_obj.save_pkcs1()
    priv_key_code = base64.standard_b64encode(priv_key_str)
     
    print(pub_key_code)
    print(priv_key_code)
     
    # ######### 2. 加密 #########
    def encrypt(value):
        key_str = base64.standard_b64decode(pub_key_code)
        pk = rsa.PublicKey.load_pkcs1(key_str)
        val = rsa.encrypt(value.encode('utf-8'), pk)
        return val
     
     
    # ######### 3. 解密 #########
    def decrypt(value):
        key_str = base64.standard_b64decode(priv_key_code)
        pk = rsa.PrivateKey.load_pkcs1(key_str)
        val = rsa.decrypt(value, pk)
        return val
     
     
    # ######### 基本使用 #########
    if __name__ == '__main__':
        v = 'wupeiqi'
        v1 = encrypt(v)
        print(v1)
        v2 = decrypt(v1)
        print(v2)
  • 相关阅读:
    NumPy使用图解教程
    Pytorch 网络结构可视化
    OpenCV基于字节指针进行高效像素遍历
    scrapy工具创建爬虫工程
    网络爬虫基本概念与Scrapy工具包使用
    CentOS 7命令行安装GNOME桌面
    sicily 1154. Easy sort (tree sort& merge sort)
    全连通图求最小生成树边权之积(邻接矩阵/prim/kruskal)
    sicily 1024. Magic Island
    写在Web考试后的一点小总结
  • 原文地址:https://www.cnblogs.com/liuguniang/p/7309709.html
Copyright © 2011-2022 走看看