代码思路很简单,字符串的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字符串的编码与解码方法实现信息加解密相关推荐

  1. Python字符串的编码与解码(encode与decode)

    首先要搞清楚,字符串在Python内部的表示是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码,即先将其他编码的字符串解码(decode)成unicode,再从unico ...

  2. python字符串成熟编码_python字符串转公式两种方法获取网页编码python版

    在web开发的时候我们经常会遇到网页抓取和分析,各种语言都可以完成这个功能.我喜欢用python实现,因为python提供了很多成熟的模块,可以很方便的实现网页抓取. 但是在抓取过程中会遇到编码的问题 ...

  3. 二十六、python中字符串的编码与解码,utf-8编码与解码,gbk编码与解码

    在python中,我们经常会使用到字符串的编码与解码,推荐你在写代码的过程中都用utf-8编码解码 1.utf-8编码用函数encode,例子,编码英文跟数字的时候,他只是在前面多了个b,编码中文的时 ...

  4. Python-base编码和解码方法

    文章目录 前言 一.函数介绍 二.base16 [1]. 编码 [2]. 解码 三.base32 [1]. 编码 [2]. 解码 四.base64 [1]. 编码 [2]. 解码 前言 仅介绍pyth ...

  5. Python字符串与编码

    Python字符串与编码 计算机对文本进行编码的方式 ASCII码 由于计算机是美国人发明的,因此,最早只有127个字母被编码到计算机里,也就是大小写英文字母.数字和一些符号,这个编码表被称为ASCI ...

  6. python的变量名有哪些_【python字符串做变量名的方法有哪些?这些方法对python应用很重要】- 环球网校...

    [摘要]python的功能都是建立在代码之上的,不过你知道python字符串做变量名的方法有哪些?这些方法对python应用很重要,如果你想学好python,那么本文内容一定要自己试试,毕竟实践出真知 ...

  7. [转载] python字符串查找的四种方法

    参考链接: python中的字符串rindex python 字符串查找有4个方法,1 find,     2 index方法,3 rfind方法,   4 rindex方法. 1 find()方法: ...

  8. Python字符串连接的5种方法

    总结了一下Python字符串连接的5种方法: 加号 第一种,有编程经验的人,估计都知道很多语言里面是用加号连接两个字符串,Python里面也是如此直接用 "+" 来连接两个字符串: ...

  9. Python入门--字符串的编码与解码

    #字符串的编码转换 #编码与解码的方式 #编码:将字符串转换为二进制数据(bytes) #解码:将bytes类型的数据转换成字符串类型 ################################ ...

最新文章

  1. java中图片文件的判断
  2. [Err] 1449 - The user specified as a definer ('admin_isbox'@'localhost') does not exist
  3. ubuntu安装新字体
  4. c++ set有序性
  5. Android -- 再来一发Intent
  6. java 管理员命令模式_java中命令模式详解和使用方法
  7. 数据库mysql表怎么设置外键_如何设置数据库中的外键
  8. ffplay 分析(音频从Frame(解码后)队列取数据到SDL输出)
  9. 【C语言笔记结构体】
  10. 【汇编优化】之X86架构优化公用头讲解
  11. 设计模式之桥接模式(Java语言描述)
  12. [转载] 中华典故故事(孙刚)——33 人上一百形形色色
  13. cad插件制作教程_站长私藏CAD插件分享(内附使用教程)
  14. 怎么查看自己电脑是否被安装远程监控
  15. Octave获取使用imnoise函数
  16. 重庆大学计算机学院考研,2021年重庆大学计算机学院考研指南
  17. 波波夫:无线电的先驱
  18. 有关选择的作文素材分享
  19. app开发入门篇-近期uniapp ; 封装request
  20. 慎用!闲鱼APP竟然成为了诈骗犯的庇护所!

热门文章

  1. 后勤管理系统_还在用人工进行宿舍后勤管理?超级适用的宿舍管理系统推荐
  2. java能写驱动吗_使用纯java jdbc驱动程序实现数据库的连接
  3. java代码启动spring_javascript - 从JavaScript调用Java代码( Spring 启动)
  4. k8s mysql pv_k8s+mysql+pv+pvc+NFS实现mysql容器编排
  5. ief12执行一次js才有效_陈列到底多久调一次才有效?
  6. 符合要求的安全电路用计算机屏蔽电缆,全国计算机三级信息安全技术习题及答案...
  7. 计算机培训三下乡实践报告,暑期“三下乡”社会实践心得体会范文
  8. 玩转 SpringBoot 2 快速整合 Filter
  9. 基于JAVA+SpringBoot+Vue+Mybatis+MYSQL的小程序医院预约挂号系统
  10. LintCode 28. 搜索二维矩阵