培根密码,培根所用的密码是一种本质上用二进制数设计的,没有用通常的0和1来表示,而是采用a和b

一、培根密码加密方式

    第一种方式:    A aaaaa B aaaab C aaaba D aaabb E aabaa F aabab G aabba H aabbb I abaaa J abaab    K ababa L ababb M abbaa N abbab O abbba P abbbb Q baaaa R baaab S baaba T baabb    U babaa V babab W babba X babbb Y bbaaa Z bbaab

    第二种方式    a AAAAA   g AABBA    n ABBAA   t BAABA    b AAAAB   h AABBB    o ABBAB   u-v BAABB    c AAABA   i-j ABAAA  p ABBBA   w BABAA    d AAABB   k ABAAB    q ABBBB   x BABAB    e AABAA   l ABABA    r BAAAA   y BABBA    f AABAB   m ABABB    s BAAAB   z BABBB

二、举例

例1、 baabaaabbbabaaabbaaaaaaaaabbabaaaabaaaaaabaaabaabaaaabaabbbaabbbaababb

baaba aabbb abaaa bbaaa aaaaa abbab aaaab aaaaa abaaa baaba  aaaba abbba abbba ababb

s           h         i           y         a         n         b         a        i           s          c         o          o        l

例2、明文是LOVE,用“随意选取句子和文”加密,得到密文就是“SuLyi XuanQ uJuZi HEwEN”(这里用大写字母代表a,小写字母代表b)

SuLyi  XuanQ uJuZi HEwEN

ababbabbbabababaabaa

这里,加密者使用两种不同字体,准备好一篇包含相同ab字数的假信息后,即两种字体分别代表a型和b型。然后假信息中的每个字母按字体来决定其代表“a”还是“b”。

例3、明文:now is a good t.........密码术 密码学 密码论坛 密码术论坛, `, Q" J/ K2 F9 S
                      n       o        w        i        s       a        g       o        o        d        t
                  abbaa abbab babaa abaaa baaab aaaaa aabba abbab abbab aaabb baaba
        密文:BOWED ASTER PINED JOKED THEIR BLACK HASTE ARRAY INSET CHEST SLING

加密规则:(1)a-m -> a ,也就是说 a ——m 的所有字母都能替换成 a。

n-z  -> b ,也就是说 n ——z 的所有字母都能替换成 b。

(2)a-m <- a ,也就是说 a 可以替换 a——m 中的任何一个字母。

n-z  <- a ,也就是说 b 可以替换 n——z  中的任何一个字母。

Ps:密文中的单词都是根据加密规则随便拼凑出来的,为了使加密更隐蔽,一般拼凑出来的单词可连成通顺的一句话

三、附加解密Python脚本如下:

#!/usr/bin/python
# -*- coding: utf-8 -*-
import realphabet = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']first_cipher = ["aaaaa","aaaab","aaaba","aaabb","aabaa","aabab","aabba","aabbb","abaaa","abaab","ababa","ababb","abbaa","abbab","abbba","abbbb","baaaa","baaab","baaba","baabb","babaa","babab","babba","babbb","bbaaa","bbaab"]second_cipher = ["aaaaa","aaaab","aaaba","aaabb","aabaa","aabab","aabba","aabbb","abaaa","abaaa","abaab","ababa","ababb","abbaa","abbab","abbba","abbbb","baaaa","baaab","baaba","baabb","baabb","babaa","babab","babba","babbb"]def encode():string = raw_input("please input string to encode:\n")e_string1 = ""e_string2 = ""for index in string:for i in range(0,26):if index == alphabet[i]:e_string1 += first_cipher[i]e_string2 += second_cipher[i]breakprint "first encode method result is:\n"+e_string1print "second encode method result is:\n"+e_string2returndef decode():e_string = raw_input("please input string to decode:\n")e_array = re.findall(".{5}",e_string)d_string1 = ""d_string2 = ""for index in e_array:for i in range(0,26):if index == first_cipher[i]:d_string1 += alphabet[i]if index == second_cipher[i]:d_string2 += alphabet[i]print "first decode method result is:\n"+d_string1print "second decode method result is:\n"+d_string2returnif __name__ == '__main__':while True:print "\t*******Bacon Encode_Decode System*******"print "input should be lowercase,cipher just include a b"print "1.encode\n2.decode\n3.exit"s_number = raw_input("please input number to choose\n")if s_number == "1":encode()raw_input()elif s_number == "2":decode()raw_input()elif s_number == "3":breakelse:continue

注:本笔记参考文献百度百科、xuqi7博客、 曜希JFSH

----------------------------------------------------------------分割线---------------------------------------------------------

ps:萌新一枚,本文纯为学习笔记,以防某日犯傻忘记--。如有不妥处,望大佬们赐教~

转载于:https://www.cnblogs.com/xdjun/p/7398277.html

密码学笔记——培根密码相关推荐

  1. CTF-Show密码学【摩斯码、培根密码】

    萌新 密码33 一.题目信息 题目名称:我想吃培根 题目描述:-- - .-. - . -–.- - - -–.- -.-. - - .-- -–.- -- -- - -–.- -- .- -.-. ...

  2. 密码学笔记——eval(function(p,a,c,k,e,d) 加密破解

    密码学笔记--eval(function(p,a,c,k,e,d) 的加密破解 例题: 小明某天在看js的时候,突然看到了这么一段代码,发现怎么也理不出代码逻辑,你能帮帮他吗? 格式:SimCTF{} ...

  3. python密码学凯撒密码_凯撒密码在Python

    python密码学凯撒密码 Hello everyone, in this tutorial you'll learn about Caesar cipher in Python. If you ha ...

  4. 红帽认证学习笔记-破解密码

    红帽认证学习笔记-破解密码 1. 启动的时候,在启动界面,相应启动项,内核名称上按"e": 2. 进入后,找到linux16开头的地方,按"end"键到最后,输 ...

  5. 【密码学篇】密码行业标准汇总(GM)

    [密码学篇]密码行业标准汇总(GM) 截止到2023年03月10日,共130个密码行业标准,适用商用密码应用与安全性评估等密码行业,可点击链接预览或下载标准-[蘇小沐] 文章目录 [密码学篇]密码行业 ...

  6. 密码学基础--仿射密码

     在仿射密码中,加密函数定义为: e(x)=(ax+b)mod26 a,bZ.因为这样的函数被称为仿射函数,所以这样的密码体制也称为仿射密码(可以看出,当a=1时,其对应的正是移位密码). 为了能对密 ...

  7. 密码学笔记——维吉尼亚密码

    维吉尼亚密码 一.简介 维吉尼亚密码是使用一系列凯撒密码组成密码字母表的加密算法,属于多表密码的一种简单形式. 二.加密算法 直接拿例子来说,比如我要加密一段明文        明文:THISISTO ...

  8. 【密码学】传统密码:置换密码

    虽然说开通博客已经很久了,也写了一些文章,但是在自己看来没有什么干货都是些水文,内容比较散,有一种打游击的感觉.不过如果说作为一种总结,习惯,笔记,那也达到了目的.前面一段时间花在网络编程,后面的书看 ...

  9. 信息论——密码学笔记(七)

    一.信息论 Claude Elmwood Shannon于1948年首先确立了现代信息论. 1.信息量(amount of information):假设所有消息是等可能的,对消息中所有可能的值进行编 ...

  10. 序列密码体制——密码学笔记(三)

    一.密码学中的随机数 许多密码系统的安全性都依赖于随机数的生成,例如DES加密算法中的密钥,RSA加密和数字签名中的素数. 序列密码的保密性完全取决于密钥的随机性. 如果密钥是真正的随机数,则这种体制 ...

最新文章

  1. 集合 Arrays.asList | java.lang.UnsupportedOperationException: null
  2. shell获取ip的值
  3. MySQL(二)InnoDB的内存结构和特性
  4. qt的如何调整显示不为科学记数法_Excel操作技巧:如何将信息快速准确的录入Excel?...
  5. gcc编译以及Makefile与GDB调试
  6. html5酷炫表白代码_七夕表白代码,樱花特效+爱心特效+花瓣+评论留言功能等
  7. Bailian4096 信号转换【密码】
  8. Linux如何使用GPG(GNU Privacy Guard)对信息/文件进行加密和解密
  9. python 列表转字典的一些方法
  10. UVN相机模型矩阵推导
  11. snmp的oid查询方法
  12. Roberts算子,matlab代码实现
  13. html 做报表,创建 HTML 报表
  14. win10 屏幕亮度自动调节关闭
  15. Android 高德地图 Polyline 实时绘制行动轨迹
  16. java web期末_javaweb期末考试模拟题
  17. 校园超市购物小程序 计算机毕业设计
  18. 用OpenWrt软路由做旁路由-VMWARE版
  19. 学会自己测天气------06
  20. 离散数学与组合数学-05树

热门文章

  1. 中国移动何时成为“移动信息专家”
  2. VS2013配置OpenGL
  3. Nifi Api访问
  4. python xlwt_python – 使用xlwt写入现有工作簿
  5. 尝试docker1.12内置swarm
  6. python 物体定位_python中使用DNF Extractor和PIL定位dnf中物品位置
  7. 机器学习(周志华)读书笔记 1
  8. splunk : admin 没有权限问题的解决
  9. 【资源分享】Dll Injector(DLL注入器)
  10. 2022张宇考研基础30讲 第六讲 中值定理