一、凯撒加解密(python3)

def change(c,i):c = c.lower()num = ord(c)if num >= 97 and num <= 122:num = 97 + ((num - 97) + i) % 26return chr(num)def kaisa_jiami(string,i):string_new = ''for s in string:string_new += change(s,i)print(string_new)return string_newdef kaisa_jiemi(string):for i in range(25):print('\n', i, '\n')i += 1kaisa_jiami(string,i)def main():print('请选择需要的操作:')print('1:凯撒加密')print('2:凯撒解密')choice = input()if choice == '1':string = input('请输入需要加密的字符串:')num = int(input('请输入需要偏移的位数:'))kaisa_jiami(string,num)elif choice == '2':string = input('请输入需要解密的字符串:')kaisa_jiemi(string)else:print('输入错误,请重试!')main()if __name__ == '__main__':main()

二、base64和base32解密(python2)

import base64
readfile = open('base.txt','r')
writefile = open('flag.txt','w')
txt = readfile.readlines()[0]
while True:try:txt = base64.b32decode(txt)except:txt = base64.b64decode(txt)finally:print(txt)writefile.write(txt)writefile.write('\n')
writefile.close()
readfile.close()

三、RC-4加解密(python3)

def get_text():text=input('输入明文:')return textdef get_key():key=''active=Truewhile active:key=input('输入密钥:')if key == '':print('密钥不能为空,请重新输入!')else:active=Falsereturn keydef init(key):s=list(range(256))j=0for i in range(256):j=(j+s[i]+ord(key[i%len(key)]))%256s[i],s[j] =s[j],s[i]print('s初始置换数组为:')print(s)return sdef trans_stream(message,s_box):result=[]i=j=0for s in message:i=(i+1)%256j=(j+s_box[i])%256s_box[i],s_box[j]=s_box[j],s_box[i]t=(s_box[i]+s_box[j])%256k=s_box[t]result.append(chr(ord(s)^k))print('密文为:')print(''.join(result))def start():print('欢迎使用RC-4加密!')
text=get_text()key=get_key()print('明文为:'+text)print('密钥为:'+key)s=init(key)trans_stream(text,s)temp=input('回车结束程序。')start()

四、差分曼彻斯特解密(python2)

msg1 = 0x9a9a9a6a9aa9656699a699a566995956996a996aa6a965aa9a6aa596a699665a9aa699655a696569655a9a9a9a595a6965569a59665566955a6965a9596a99aa9a9566a699aa9a969969669aa6969a9559596669
s = bin(msg1)[2:]
print s
r = ""
tmp = 0
for i in xrange(len(s) / 2):c = s[i * 2]if c == s[i * 2 - 1]:r += '1'else:r += '0'
print hex(int(r, 2))[2:-1].decode('hex')

五、莫斯电码解密(python3)

from __future__ import print_function
while 1:a = input("input the string:")s = a.split(" ")dict = {'01': 'A','1000': 'B','1010': 'C','100':'D','0':'E','0010':'F','110': 'G','0000': 'H','00': 'I','0111':'J','101': 'K','0100': 'L','11': 'M','10': 'N','111': 'O','0110': 'P','1101': 'Q','010': 'R','000': 'S','1': 'T','001': 'U','0001': 'V','011': 'W','1001': 'X','1011': 'Y','1100': 'Z','01111': '1','00111': '2','00011': '3','00001': '4','00000': '5','10000': '6','11000': '7','11100': '8','11110': '9','11111': '0','001100': '?','10010': '/','101101': '()','100001': '-','010101': '.','110011':',','011010':'@','111000':':','101010':':','10001':'=','011110':"'",'101011':'!','001101':'_','010010':'"','10110':'(','1111011':'{','1111101':'}'};for item in s:print (dict[item],end='')print("\n")

六、栅栏密码解密(python3)

def zhalan(e):elen = len(e)field = []for i in range(2, elen):if (elen % i == 0):field.append(i)for f in field:b = elen // fresult = {x: '' for x in range(b)}for i in range(elen):a = i % b;result.update({a: result[a] + e[i]})d = ''for i in range(b):d = d + result[i]print(d)d.lower()if __name__ == '__main__':e = 'qddpqwnp-cplen%prqwn_{_zz*d@gq}'zhalan(e)

七、转轮机密码解密(python3)

# 五、栅栏密码解密
```c
def zhalan(e):elen = len(e)field = []for i in range(2, elen):if (elen % i == 0):field.append(i)for f in field:b = elen // fresult = {x: '' for x in range(b)}for i in range(elen):a = i % b;result.update({a: result[a] + e[i]})d = ''for i in range(b):d = d + result[i]print(d)d.lower()if __name__ == '__main__':e = 'qddpqwnp-cplen%prqwn_{_zz*d@gq}'zhalan(e)

九、递推算法(python3)

n=['33DB76A7C594BFC3','CD36C2E32A371480',
'8CEE9FF3933365BC','57373FE3C783A78F',
'59B322834BB73B59','423719DD973C6AD3',
'C858FBEABF480DA3','3CC8C789BA7B8135']
#func1
a=1;b=2
f1={}
for i in range(3,100):t=a+bf1[hex(t)[-16:]]=str(str(i))a,b=b,t
#func2
a=1;b=2;c=3
f2={}
for i in range(4,100):t=a+b+cf2[hex(t)[-16:]]=str(str(i))a,b,c=b,c,t
#func3
a=1;b=2;c=3;d=4
f3={}
for i in range(5,100):t=a+b+c+df3[hex(t)[-16:]]=str(str(i))a,b,c,d=b,c,d,t
#func-4
a=1;b=2;c=3;d=4;e=5
f4={}
for i in range(6,100):t=a+b+c+d+ef4[hex(t)[-16:]]=str(str(i))a,b,c,d,e=b,c,d,e,t
flag='flag{'
for i in range(0,8):n[i]=n[i].lower()if n[i] in f1.keys():flag=flag+f1[n[i]]+"_"elif n[i] in f2.keys():flag=flag+f2[n[i]]+"_"elif n[i] in f3.keys():flag=flag+f3[n[i]]+"_"elif n[i] in f4.keys():flag=flag+f4[n[i]]+"_"
flag=flag[:-1]+'}'
print(flag)

十、二进制幂数(python2)

#! /usr/bin/env python
#coding=utf-8
a="8842101220480224404014224202480122"
a=a.split("0")
flag=''
for i in range(0,len(a)):str = a[i]list=[]sum=0for j in str:list.append(j)length = len(list)for k in range(0,length):sum+=int(list[k])flag+=chr(sum+64)
print flag

在这里还是要推荐下我自己建的Python学习Q群:705933274,群里都是学Python的,如果你想学或者正在学习Python ,欢迎你加入,大家都是软件开发党,不定期分享干货(只有Python软件开发相关的),包括我自己整理的一份2021最新的Python进阶资料和零基础教学,欢迎进阶中和对Python感兴趣的小伙伴加入!

常规密码学加解密脚本(python)相关推荐

  1. CTF常规密码学加解密脚本(python)

    常规密码学加解密脚本(python) 文章目录 一.凯撒加解密(python3) 二.base64和base32解密(python2) 三.RC4加解密(python3) 四.差分曼彻斯特解密(pyt ...

  2. 墨者学院-密码学加解密实训(摩斯密码第2题)

    密码学加解密实训(摩斯密码第2题) 难易程度:★★ 题目类型:代码审计 使用工具:FireFox浏览器.audacity 1.打开靶场,下载文件,这题没有加密文件格式,所以我们直接用音频编辑器auda ...

  3. 邮储银行php对接加解密,Web服务器优化以及PHP加解密脚本ionCube的安装——iMobiTrax追踪系统安装准备(一)...

    在之前的文章"一步一步教你搭建iMobiTrax追踪系统--Lnmp建立Web运行环境"以及"一步一步教你搭建iMobiTrax追踪系统--添加虚拟主机"中我们 ...

  4. 实验吧-密码学-杯酒人生(特殊凯撒--维吉尼亚密码)(凯撒加解密脚本、维吉尼亚密码加解密脚本)...

    题目: 使用古典密码 一喵星人要想喵星发送一段不知道干什么用的密码"BLOCKCIPHERDESIGNPRINCIPLE", 但是它忘记了密钥是什么, 手头(爪头)只有它自己加密过 ...

  5. CTF密码学-加解密总结

    零基础学黑客,搜索公众号:白帽子左一 密码学基本简介 密码学(在西欧语文中,源于希腊语kryptós"隐藏的",和gráphein"书写")是研究如何隐密地传递 ...

  6. DES加解密的python实现

    代码是从github上找到的,也融入了自己的一些理解. 一.原理 原理:分组密码将明文分成一组一组,在密钥的控制下,经过加密变换生产一组一组的密文.具体而言,分组密码就是将明文消息列m1,m2,··· ...

  7. python 3des加密_DES/3DES之ECB模式和CBC模式加解密 及 Python 实现

    概念说明 DES:Data Encryption Standard,即数据加密标准,是一种使用密钥加密的块算法. 3DES:Triple DES,是三重数据加密算法(TDEA,Triple Data ...

  8. 恺撒密码加解密程序(Python)

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.确定恺撒密码原理,用公式表示 二.子函数的确立 1.加密部分 2.解密部分 3.选择加密还是解密 三.确定各个子函 ...

  9. Java RSA、AES加解密,Python RSA、AES加解密

    需求 python服务发起加密http请求网关,网关验签解密后路由返回加密结果,python服务解密得到明文 请求加密 生成随机字符 s,[a-z][A-z][0-9] 16位 ,例如:s=2zQ6E ...

最新文章

  1. 洛谷P2057 【SHOI2007】善意的投票
  2. Java的二十三种设计模式(原型模式(Prototype))
  3. MySQL sysdate()函数 不走索引的问题
  4. hp-ux锁定用户密码_我们如何简化925移动应用程序的用户入门— UX案例研究
  5. junit junit_JUnit理论简介
  6. 月工资8000元无社保公积金,月工资6000元有社保公积金,怎么选?
  7. 喜欢的数字:使用一个字典来_数字证书:何时何地使用它们
  8. 生活杂谈-空调的修理
  9. Python_2018-11-27_机器视觉——百度人脸识别
  10. java: 类StreamTest是公共的, 应在名为 StreamTest.java 的文件中声明
  11. HC-05蓝牙模块主从机通信
  12. 基于matlab摄像毕业设计,基于MATLAB的车牌识别毕业设计
  13. Openwrt:LuCI入门(一)
  14. 怎样在Mac上的Safari中观看YouTube画中画?
  15. CAD颜色索转RGB(方法一)
  16. 【python】使用pip安装指定版本的模块,卸载、查看、更新包
  17. Zabbix监控网络设备模板配置
  18. TOS和DSCP总结
  19. 高中数学关于计算机的知识,高中数学必修4知识点总结归纳_数学_高中教育_教育专区.doc...
  20. 【读书笔记】AUTOSAR规范与车用控制器软件开发01

热门文章

  1. 免费链接投票作品投票通道线上投票活动制作网络投票制作
  2. 计算机网络--基本命令使用
  3. PTP 协议实现多个Basler/海康工业相机同步拍照
  4. 互联网络——基本的单极互联网络
  5. java堆按照最小排序_java.util.TaskQueue的最小堆排序算法的应用
  6. cucumber自动化 java_cucumber自动化测试官方教程
  7. cucumber生成测试报告
  8. Oracle数据库数据同步到mysql数据库(Oracle数据库备份dmp如何同步到mysql)
  9. 西北农林科技大学计算机学院保研,坐落在小镇上的985大学,学生家长纷纷嫌弃,考上的人却在偷笑...
  10. Java语言的File类总结