zoukankan      html  css  js  c++  java
  • python实现加密

    1、md5加密

    hashlib 库中包括如SHA1、SHA224、SHA256、SHA384、SHA512和MD5算法等

    >>> import hashlib
    >>> hashlib.md5('123'.encode('utf-8')).hexdigest() '202cb962ac59075b964b07152d234b70'

      

    2、base64

    import base64
    
    str = 'hello world'.encode(encoding='utf-8')
    
    #加密
    encodestr = base64.b64encode(str)
    print(encodestr) #b'aGVsbG8gd29ybGQ='
    print(encodestr.decode())  #aGVsbG8gd29ybGQ=
    
    #解密
    
    decodestr = base64.b64decode(encodestr)
    print(decodestr)  #b'hello world'
    print(decodestr.decode())  #hello world
    

      

    3、AES

    #AES-demo
    
    import base64
    from Crypto.Cipher import AES
    
    '''
    采用AES对称加密算法
    '''
    # str不是16的倍数那就补足为16的倍数
    def add_to_16(value):
        while len(value) % 16 != 0:
            value += ''
        return str.encode(value)  # 返回bytes
    #加密方法
    def encrypt_oracle():
        # 秘钥
        key = '123456'
        # 待加密文本
        text = 'abc123def456'
        # 初始化加密器
        aes = AES.new(add_to_16(key), AES.MODE_ECB)
        #先进行aes加密
        encrypt_aes = aes.encrypt(add_to_16(text))
        #用base64转成字符串形式
        encrypted_text = str(base64.encodebytes(encrypt_aes), encoding='utf-8')  # 执行加密并转码返回bytes
        print(encrypted_text)
    #解密方法
    def decrypt_oralce():
        # 秘钥
        key = '123456'
        # 密文
        text = 'qR/TQk4INsWeXdMSbCDDdA=='
        # 初始化加密器
        aes = AES.new(add_to_16(key), AES.MODE_ECB)
        #优先逆向解密base64成bytes
        base64_decrypted = base64.decodebytes(text.encode(encoding='utf-8'))
        #
        decrypted_text = str(aes.decrypt(base64_decrypted),encoding='utf-8') # 执行解密密并转码返回str
        print(decrypted_text)
    
    if __name__ == '__main__':
       # encrypt_oracle()
        decrypt_oralce()

    4、RSA

    pip install rsa  //安装rsa模块

     1 import rsa
     2 key = rsa.newkeys(3000)#生成随机秘钥
     3 privateKey = key[1]#私钥
     4 publicKey = key[0]#公钥
     5 message ='sanxi Now is better than never.'
     6 print('Before encrypted:',message)
     7 message = message.encode()
     8 cryptedMessage = rsa.encrypt(message, publicKey)
     9 print('After encrypted:
    ',cryptedMessage)
    10 message = rsa.decrypt(cryptedMessage, privateKey)
    11 message = message.decode()
    12 print('After decrypted:',message)
    僵尸将臣
  • 相关阅读:
    【pytest学习10】fixture参数化,fixture(params=data)装饰器的data是函数返回值yield request.param ,将带到下面调用为参数的函数中
    Pipfile 文件转换利器——pipfile-freeze
    npm的lock
    调试wmi连接主机进行监控
    RPC电源监控总结
    HTTP协议三次握手过程
    linux常用命令集
    Gym
    Gym
    实验2.2
  • 原文地址:https://www.cnblogs.com/sunshenggang/p/9354590.html
Copyright © 2011-2022 走看看