仿射密码是一种表单代换密码,字母表的每个字母相应的值使用一个简单的数学函数对应一个数值,再把对应数值转换成字母。

加密函数:E(x) = (ax + b) (mod m),其中 a与b互质,其中 a与m互质,m是编码系统中字母的个数(通常都是26)。

解密函数:D(x) = a^{-1} (x - b) (mod m),其中 a^{-1} 是 a 在Z_{m}群的乘法逆元。

例题

密文,:MZYVMIWLGBL7CIJOGJQVOA3IN5BLYC3NHI   (和base32有关)
key:IJEVIU2DKRDA==== I和M相对应

解题脚本

from base64 import b32decodedef solve():s='MZYVMIWLGBL7CIJOGJQVOA3IN5BLYC3NHI'dic='ABCDEFGHIJKLMNOPQRSTUVWXYZ234567'     #base32的构成msg=''.join([dic[(5*dic.find(x)+12)%32] for x in s])return b32decode(msg+'='*(8-len(msg)%8))if __name__=='__main__':print solve()

仿射密码介绍以及解题脚本相关推荐

  1. 仿射密码python_CTF-仿射密码(python)

    这里直接上干货脚本,讲解请看我的视频.仿射密码知识点 1)出题脚本: a = 7 b = 22 flag = 'flag{23a490bfcb767099e9ce48dee691a34b}' c='' ...

  2. 仿射密码解密(Affine Cipher)

    仿射密码是一种表单代换密码,字母表的每个字母相应的值使用一个简单的数学函数对应一个数值,再把对应数值转换成字母. A B C D E F G H I J K L M N O P Q R S T U V ...

  3. python用表达式解密密文_基于Python解密仿射密码

    新学期有一门密码学课,课上老师布置了一道密码学题,题目如下: 解密由仿射密码加密的密文"DBUHU SPANO SMPUS STMIU SBAKN OSMPU SS" 想解密这个密 ...

  4. linux 将新密码邮件发送,linux脚本实现自动发送和收取邮件的设置方法

    linux脚本实现自动发送和收取邮件的设置方法 更新时间:2013年05月11日 19:51:45   作者: 这篇文章主要是介绍linux下通过脚本自动发送和收取邮件的设置方法,有需要的朋友可以参考 ...

  5. 仿射密码(原理+代码)

    仿射密码 目录 1.原理: 2.流程图 3.编程实现 4.总结 1.原理:         仿射密码是一种单表代换的对称密码.明文中所有字母对应成数值,经过加密函数加密成新的数值,再对应到相应的字母, ...

  6. 仿射密码实验——Python实现(完整解析版)

    文章目录 前言 实验内容 实验操作步骤 1.编写主程序 2.编写加密模块 3.编写解密模块 4.编写文件加解密模块 实验结果 实验心得 实验源码 scirpt.py usefile.py 前言 实验目 ...

  7. 仿射密码python_Python实现仿射密码的思路详解

    仿射密码思路: 1.加解密公式: 2.构造对应字典: 3.代码实现 构造字典,建立映射关系: # 构造字典,'A' --> 0 ... def char_2_num(x): list_s = [ ...

  8. 密码学课设-仿射密码的攻击

    攻略 实验描述 实验分析 编程实现 py3 实现 c++ 实现 实验描述 问题描述 仿射密码系统用五元组(P,C,K,E,D)表示,设 P = C = { 计算机学院网络工程信息安全,我们热爱中华人民 ...

  9. 密码加密解密(三)——仿射密码设计

    代换密码算法的原理是使用替代法进行加密,就是将明文中的字符用其它字符替代后形成密文.例如,明文字母a.b.c.d,用D.E.F.G做对应替换后形成密文. 代换密码包括多种类型,如单表代换密码.多表代换 ...

最新文章

  1. 玩cf出现outofmemory_《穿越火线》的肖枫原型是CF选手白鲨吗?
  2. 查询本机公网ip地址的方法
  3. System.Web.HttpRequestValidationException——从客户端检测到危险的Request值
  4. Java_IO流(精讲)包含练习题及答案
  5. java中变量的作用域
  6. Java面向对象(21)--内部类
  7. 轻量级web富文本框——wangEditor使用手册(4)——配置下拉菜单 demo
  8. jwt获取token_JWT实现token认证
  9. [W3C][CSS]选择器(Selectors Level 3)[未完成]
  10. Fast dev didn't succeed, trying another location
  11. 集合拆成固定长度的小集合_《集合啦动物森友会》钓鱼怎么玩?钓鱼小技巧攻略分享...
  12. python selenium firefox使用
  13. 韩国李世石跟韩国AI大战,2负一胜
  14. adb 模拟器安装apk
  15. paip.c++ static 变量的定义以及使用...
  16. 如何直观理解粒子滤波并进行Python编程实践
  17. YOLOv5的详细使用教程,以及使用yolov5训练自己的数据集
  18. matlab聚类画图怎么做,[转载]用MATLAB做聚类分析
  19. google如何恢复误删除书签
  20. 10个3d立体字ps金属字图层样式下载

热门文章

  1. Matlab概率统计编程指南
  2. 我的.gitignore下配置。存在这里一下。日后有空研究研究!
  3. 从道的角度来论述大数据对企业价值
  4. ecshop $user
  5. Async/Await替代Promise的6个理由
  6. Python学习总结5:数据类型及转换
  7. Sqlite使用技巧集锦
  8. Go连接MySql数据库too many connections
  9. 跳出圈子易,再入围城难,重新学编程,且学且珍惜
  10. 远程java接口说明