zoukankan      html  css  js  c++  java
  • 使用Python pyDes和base64模块对字符串进行加密和解密

    代码如下:

    import pyDes
    import base64
    
    Key = "Gogenius"
    Iv = "Gogen123"
    
    
    # 加密
    def encrypt_str(data):
        # 加密方法
        method = pyDes.des(Key, pyDes.CBC, Iv, pad=None, padmode=pyDes.PAD_PKCS5)
        # 执行加密码
        k = method.encrypt(data)
        # 转base64编码并返回
        return base64.b64encode(k)
    
    
    # 解密
    def decrypt_str(data):
        method = pyDes.des(Key, pyDes.CBC, Iv, pad=None, padmode=pyDes.PAD_PKCS5)
        # 对base64编码解码
        k = base64.b64decode(data)
        # 再执行Des解密并返回
        return method.decrypt(k)
    
    
    Encrypt = encrypt_str("1234567")
    print(Encrypt)
    Decrypt = decrypt_str(Encrypt)
    print(Decrypt)
     

    扩展:

    默认情况下本加密函数执行完成后返回的为base64编码,如果直接存放到数据库再取出来有可能就是str型,这时候不可以直接拿str型的数据去解密,所以通常做法是先将数据转换为字符串型后再存放到数据库,解密的时候从数据库取出来再转换成base64编码再进行解密,方法如下

    # 转换为UTF-8编码,用这种编码存储就不会有问题
    data.decode("UTF-8")
    # 解码
    data.encode("UTF-8")
     

    此外:我们可以在存储的时候在字符串的前面,后面加入一些随机长度的字符串,这样防止别人破解,但在解密的时候需要将这些加上去的字符串先去除

  • 相关阅读:
    Mysql 从入门到遗忘
    Centos7开放及查看端口
    创建及修改数据库
    02_python是一种什么语言?
    03_SQL server数据类型
    02_关系数据库
    01_初识数据库
    kali 更新源
    01_Python简介
    Alertmanager高可用
  • 原文地址:https://www.cnblogs.com/feifeifeisir/p/12858687.html
Copyright © 2011-2022 走看看