Python 栅栏凯撒

def fence_Crypto(msg,priority="row"):
    ‘‘‘
    usage:
        fence_Crypto(msg[, priority])->msg to encrypt or decrypt with fence crypto
    args:
        msg:
            a plaintext which will be crypted or a ciphertext which will be decrypted
        priority:
            row priority or column priority,default is the former
    return:
        result:
            if msg is plaintext,it contains all of possible ciphertext.
            if msg is ciphertext,it contains all of possible plaintext
    ‘‘‘
    msg_len = len(msg)
    row_num = 1
    result = []
    if priority == "row":
        while row_num<=msg_len:
            temp = [msg[block_num::row_num] for block_num in xrange(row_num)]
            result.append("".join(temp))
            row_num += 1
        return result
    elif priority == "columns":
        pass
    else:
        print "parameter error!please help(fence_Crypto)"
def caesar_Crypto(msg):
    ‘‘‘
    usage:
        caesar_Crypto(msg) ---> to encrypt or decrypt the msg with caesar crypto
    ‘‘‘
    lowercase = ‘abcdefghijklmnopqrstuvwxyz‘
    uppercase = ‘ABCDEFGHIJKLMNOPQRSTUVWXYZ‘
    result = []
    offset = 1
    while offset<=26:
        temp = []
        for char in msg:
            if char in lowercase:
                temp.append(chr(97 + (ord(char) - 97 + offset) % 26))
            elif char in uppercase:
                temp.append(chr(65 + (ord(char) - 65 + offset) % 26))
            else:
                temp.append(char)
        string = "".join(temp)
        print "[*]offset %d---------"%offset,string
        result.append(string)
        offset += 1
    #return result
时间: 2024-10-28 23:37:38

Python 栅栏凯撒的相关文章

python学习笔记[1]-凯撒密码

#!/usr/bin/python #FileName:caesar.py #Code:UTF-8 import sys def caesarEnCode(string,tag): ChgString = "" for s in string: if s.islower(): ChgString += chr((ord(s)-ord('a')+tag)%26+ord('a')) elif s.isupper(): ChgString += chr((ord(s)-ord('A')+ta

CTF---密码学入门第四题 困在栅栏里的凯撒

困在栅栏里的凯撒分值:10 来源: 北邮天枢战队 难度:易 参与人数:4531人 Get Flag:2124人 答题人数:2285人 解题通过率:93% 小白发现了一段很6的字符:NlEyQd{seft} 解题链接: 原题链接:http://www.shiyanbar.com/ctf/1867 [解题报告] 这是我入门密码学开始写的第四道题,这道题有点意思,题目标题为困在栅栏里的凯撒,说明肯定是要用到栅栏密码和凯撒密码,所以我们先对这段字符进行暴力破解,这时我们可以用到一个工具,叫CTFCrac

实验吧:您的位置:首页&gt;决斗场&gt;训练题库&gt;CTF题库&gt;困在栅栏里的凯撒

困在栅栏里的凯撒分值:10 来源: 北邮天枢战队 难度:易 参与人数:8293人 Get Flag:4709人 答题人数:4950人 解题通过率:95% 小白发现了一段很6的字符:NlEyQd{seft} 抓住CTF{***}的模式,先将NlEyQd{seft}丢入栅栏密码中解出CTF{}的形式,在将它丢入凯撒密码中解密 结果:CTF{tianshu} 原文地址:https://www.cnblogs.com/jc12138/p/10012753.html

CTF密码学密文脚本解密及WP(凯撒解密)

题目来源实验吧 分析题意,说是困在栅栏中,所以将字符栅栏解密看看有什么,利用工具CTFcraktools 得到三条密文 然后说是密码是凯撒,在将四栏依次凯撒解码,寻找可能的key,这里很显然,在尝试第一个的时候,解出的明文里有一个"CTF{}"字样的一栏 解题成功. 这时我在想,这些结果那么多,答案不容易找到.于是我写了一个给出密文和偏移度就能写得出唯一的结果.说了那么多上代码 #!/usr/bin/python #encoding=utf-8 import string import

凯撒密码、GDP格式化输出、99乘法表

1凯撒密码加密plaincode=input('请输入明文:')print('密文:',end='')for i in plaincode:print(chr(ord(i)+3),end='') 2.国家名称 GDP总量(人民币亿元) 中国 ¥765,873.4375澳大利亚 ¥ 78,312.4375 print('国家名称 GDP总量(人民币亿元)')print('{0:''<12}¥{1:''>10,.2f}'.format('中国',765873.4375))print('{0:''&

字符串操作练习:星座、凯撒密码、99乘法表、词频统计预处理

  1.实例:输出12个星座符号,以反斜线分隔 for i in range(9800,9812): print(chr(i),end='\\') 2.实例:恺撒密码的编码 s = input("请输入凯撒的明文密码:") 2 for i in s: 3 if ord("a") <= ord(i) <= ord("z"): 4 print(chr(ord("a") + (ord(i) - ord("a&q

留声机十大品牌丨“凯撒宾尼/KASA.BENE”发展历史

KASA.BENE/凯撒.宾尼,成立于2012年,其中国大陆运营公司为深圳市玛斯特恩科技有限公司,此公司于2000年就开始生产经营HIFI高保真音响类产品,在国内音频行业中属于老牌企业!2012年与香港凯撒宾尼国际有限公司合资注册了"KASA.BENE/凯撒.宾尼"品牌,并开始中国大陆地区的运营.2015年9月,"KASA.BENE/凯撒.宾尼"与德国 Canzler Wrede 投资公司展开了技术.资源.资金等方面的合作.在此期间"KASA.BENE/凯

凯撒加密

一.古罗马皇帝凯撒在打仗时曾经使用过以下方法加密军事情报: 请编写一个程序,使用上述算法加密或解密用户输入的英文字串 程序: package demo; /* * 凯撒加密 * 杜泽坤 */ import java.util.*; public class Addmi { public static void main(String[]args){ System.out.println("请输入要加密的字符"); Scanner m=new Scanner(System.in); St

凯撒加密问题程序

设计思想:加密的过程是将字母在字母表中的位置向后移两位,即A编程D,字符串+3,解密时字符串-3: 程序流程图: 源代码: //王冶雯   凯撒问题加密和解密     关键点:加密是字符串+3,解密时-3 package string11; import java.util.Scanner; public class jiami { public static void main(String[] args)throws Exception { // TODO Auto-generated me