使用Python字符串的编码与解码方法实现信息加解密
代码思路很简单,字符串的encode()方法可以将其编码为字节串,在生成的字节串中插入干扰字节后无法正常解码,要想还原信息,必须清楚干扰字节的位置并删除后再使用decode()解码。本文代码重点在于演示字符串方法和内置函数bytes()的用法,加密算法本身并不具有抗攻击性,很容易被破解。
def encrypt(message, k=3):
#使用UTF8编码为字节串
m = message.encode()
result = []
#切分,3个字节一组
for i in range(0, len(m), k):
result.append(m[i:i+k])
#在每组中间插入干扰字节
#不过这样太明显了
#可以改为增加不同的随机字节
return b'\xf5'.join(result)
def decrypt(message, k=3):
#把二进制串转换为数字列表
m = list(message)
#删除干扰字节
del m[k::k+1]
#转换为字节串并解码返回
return bytes(m).decode()
p = '中文测试。This is a test. 12345'
c = encrypt(p,5)
print(decrypt(c,5))
使用Python字符串的编码与解码方法实现信息加解密相关推荐
- Python字符串的编码与解码(encode与decode)
首先要搞清楚,字符串在Python内部的表示是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码,即先将其他编码的字符串解码(decode)成unicode,再从unico ...
- python字符串成熟编码_python字符串转公式两种方法获取网页编码python版
在web开发的时候我们经常会遇到网页抓取和分析,各种语言都可以完成这个功能.我喜欢用python实现,因为python提供了很多成熟的模块,可以很方便的实现网页抓取. 但是在抓取过程中会遇到编码的问题 ...
- 二十六、python中字符串的编码与解码,utf-8编码与解码,gbk编码与解码
在python中,我们经常会使用到字符串的编码与解码,推荐你在写代码的过程中都用utf-8编码解码 1.utf-8编码用函数encode,例子,编码英文跟数字的时候,他只是在前面多了个b,编码中文的时 ...
- Python-base编码和解码方法
文章目录 前言 一.函数介绍 二.base16 [1]. 编码 [2]. 解码 三.base32 [1]. 编码 [2]. 解码 四.base64 [1]. 编码 [2]. 解码 前言 仅介绍pyth ...
- Python字符串与编码
Python字符串与编码 计算机对文本进行编码的方式 ASCII码 由于计算机是美国人发明的,因此,最早只有127个字母被编码到计算机里,也就是大小写英文字母.数字和一些符号,这个编码表被称为ASCI ...
- python的变量名有哪些_【python字符串做变量名的方法有哪些?这些方法对python应用很重要】- 环球网校...
[摘要]python的功能都是建立在代码之上的,不过你知道python字符串做变量名的方法有哪些?这些方法对python应用很重要,如果你想学好python,那么本文内容一定要自己试试,毕竟实践出真知 ...
- [转载] python字符串查找的四种方法
参考链接: python中的字符串rindex python 字符串查找有4个方法,1 find, 2 index方法,3 rfind方法, 4 rindex方法. 1 find()方法: ...
- Python字符串连接的5种方法
总结了一下Python字符串连接的5种方法: 加号 第一种,有编程经验的人,估计都知道很多语言里面是用加号连接两个字符串,Python里面也是如此直接用 "+" 来连接两个字符串: ...
- Python入门--字符串的编码与解码
#字符串的编码转换 #编码与解码的方式 #编码:将字符串转换为二进制数据(bytes) #解码:将bytes类型的数据转换成字符串类型 ################################ ...
最新文章
- java中图片文件的判断
- [Err] 1449 - The user specified as a definer ('admin_isbox'@'localhost') does not exist
- ubuntu安装新字体
- c++ set有序性
- Android -- 再来一发Intent
- java 管理员命令模式_java中命令模式详解和使用方法
- 数据库mysql表怎么设置外键_如何设置数据库中的外键
- ffplay 分析(音频从Frame(解码后)队列取数据到SDL输出)
- 【C语言笔记结构体】
- 【汇编优化】之X86架构优化公用头讲解
- 设计模式之桥接模式(Java语言描述)
- [转载] 中华典故故事(孙刚)——33 人上一百形形色色
- cad插件制作教程_站长私藏CAD插件分享(内附使用教程)
- 怎么查看自己电脑是否被安装远程监控
- Octave获取使用imnoise函数
- 重庆大学计算机学院考研,2021年重庆大学计算机学院考研指南
- 波波夫:无线电的先驱
- 有关选择的作文素材分享
- app开发入门篇-近期uniapp ; 封装request
- 慎用!闲鱼APP竟然成为了诈骗犯的庇护所!
热门文章
- 后勤管理系统_还在用人工进行宿舍后勤管理?超级适用的宿舍管理系统推荐
- java能写驱动吗_使用纯java jdbc驱动程序实现数据库的连接
- java代码启动spring_javascript - 从JavaScript调用Java代码( Spring 启动)
- k8s mysql pv_k8s+mysql+pv+pvc+NFS实现mysql容器编排
- ief12执行一次js才有效_陈列到底多久调一次才有效?
- 符合要求的安全电路用计算机屏蔽电缆,全国计算机三级信息安全技术习题及答案...
- 计算机培训三下乡实践报告,暑期“三下乡”社会实践心得体会范文
- 玩转 SpringBoot 2 快速整合 Filter
- 基于JAVA+SpringBoot+Vue+Mybatis+MYSQL的小程序医院预约挂号系统
- LintCode 28. 搜索二维矩阵