依赖包安装部分

  • 安装依赖包: pip install pycryptodome
  • 在你的python环境中的下图红框路径中找到 crypto 将其改成 Crypto

代码部分

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Date : 2018-11-27 17:21:23
# @Author : Sheldon (thisisscret@qq.com)
# @blogs : 谢耳朵的派森笔记
# @Link : https://www.cnblogs.com/shld/
from Crypto.Cipher import AES
from binascii import b2a_base64, a2b_base64 def rpad(text, divisor: int, suffix):
remain = len(text) % divisor
if remain > 0:
text += suffix * (divisor - remain)
return text def encrypt(text, salt, key):
fmtkey, fmtiv = map(lambda s: s.encode()[:16].ljust(16, b'\0'), (key, salt))
cryptor = AES.new(fmtkey, AES.MODE_CBC, fmtiv)
fmttext = rpad(text.encode(), 16, b'\0')
ciphertext = cryptor.encrypt(fmttext)
return str(b2a_base64(ciphertext))[2:-3].rstrip('=') def decrypt(text, salt, key):
fmtkey, fmtiv = map(lambda s: s.encode()[:16].ljust(16, b'\0'), (key, salt))
cryptor = AES.new(fmtkey, AES.MODE_CBC, fmtiv)
fmttext = rpad(text, 4, '=')
return cryptor.decrypt(a2b_base64(fmttext)).rstrip(b'\0').decode() if __name__ == "__main__":
# key,salt应为16字节(汉字3字节,字母1字节),不足的自动补空格,超过的取前16字节
ciphertext = encrypt("我们的祖国是花园~", "hello", "world")
plaintext = decrypt(ciphertext, "hello", "world")

PYTHON加密解密字符串的更多相关文章

  1. django删除表重建&修改用户密码&base64加密解密字符串&ps aux参数说明&各种Error例子

    1.django的queryset不支持负索引 AssertionError: Negative indexing is not supported. 2.django向前端JavaScript传递列 ...

  2. PHP的加密解密字符串函数

    程序中经常使用的PHP加密解密字符串函数 代码如下: /********************************************************************* 函数 ...

  3. php 加密解密字符串

    /********************************************************************* 函数名称:encrypt 函数作用:加密解密字符串 使用方 ...

  4. Java加密解密字符串

    http://www.cnblogs.com/vwpolo/archive/2012/07/18/2597232.html Java加密解密字符串   旧文重发:http://www.blogjava ...

  5. PHP_加密解密字符串

    PHP_加密解密字符串.php <?php //加解密字符串函数,可以加密中文 /* //加密 echo $encode = authcode('爱迪生', 'ENCODE', '3'); // ...

  6. python 加密 解密 签名 验证签名 公钥 私钥 非对称加密 RSA

    加密与解密,这很重要,我们已经可以用pypcap+npcap简单嗅探到网络中的数据包了.而这个工具其实可以嗅探到更多的数据.如果我们和别人之间传输的数据被别人嗅探到,那么信息泄漏,信息被篡改,将给我们 ...

  7. PHP加密解密字符串

    项目中有时我们需要使用PHP将特定的信息进行加密,也就是通过加密算法生成一个加密字符串,这个加密后的字符串可以通过解密算法进行解密,便于程序对解密后的信息进行处理. 最常见的应用在用户登录以及一些AP ...

  8. [DEncrypt] RSACryption--RSA加密/解密字符串 (转载)

    点击下载 RSACryption.zip 这个类是关于加密,解密的操作,文件的一些高级操作1.RSACryption RSA 的密钥产生2.RSACryption RSA的加密函数3.RSACrypt ...

  9. .net core 使用MD5加密解密字符串

    /// <summary> /// 加密 /// </summary> /// <param name="Text">要加密的文本</pa ...

随机推荐

  1. C++并发实战 与多线程

    http://blog.csdn.net/column/details/ccia.html

  2. 关于Android方法数量限制的问题

    限制Android方法数量的原因是: Android应用以DEX文件的形式存储字节码文件,在Dalvik字节码规范里,方法引用索引method referenceindex只有16位,即65536个. ...

  3. mac 下mysql常用命令

    是那种单独安装的mysql 启动: /usr/local/mysql/bin/mysql -u root -p

  4. DesignSurface简介

    The Perfect Host: Create And Host Custom Designers With The .NET Framework 2.0 Dinesh Chandnani - 三月 ...

  5. Linux Unix shell 编程指南学习笔记(第四部分)

    第十六章  shell脚本介绍 此章节内容较为简单,跳过. 第十七章   条件測试 test命令 expr命令 test  格式  test  condition     或者  [ conditio ...

  6. 115. distinct subsequence leetcode python

    Given a string S and a string T, count the number of distinct subsequences of T in S. A subsequence ...

  7. 每天一个命令 ls

    默认建立一个目录时初始硬连接数为2若该目录下有几个目录就会再增加几个连接数 ls -li 查看inode信息 ls -al 查看所有文件信息 ls -lR 查看目录下目录下的文件(递归显示目录下的文件 ...

  8. 使用struts2完成ckeditor和图片上传

    代码地址如下:http://www.demodashi.com/demo/12427.html 使用struts2完成ckeditor和ckeditor图片上传 ckeditor版本ckeditor_ ...

  9. 管理voting disks

     管理voting disks 一.关于voting disk 的一些必需要知道的东西: 11g 曾经我们能够使用dd 命令来备份voting disk ,可是在11g 以后 oracle 不再支 ...

  10. Android中经常使用的bitmap处理方法

    收集了非常多bitmap相关的处理方法,差点儿所有应用在项目中,所以特记录下! package com.tmacsky.utils; import java.io.ByteArrayOutputStr ...