• 置换密码

    代码如下:
#置换密码
a = input('请输入明文:')
print("逆序后的密文为:",a[::-1])
 结果如图:



代码如下:

#栅栏技术(栏数为7)
a = input('请输入明文:')
b = []
c = []
b.extend(a)
len = len(b)
for i in range(7):c.extend(b[i:len:7])
print('栏数为7的密文为:')
for temp in c:print(temp,end = '')
print("\n")
 结果如图:



注意:加密的时候要把明文补成方阵,缺少字符的地方用空格占位,密文中也带有空格,否则该密文无法正确解密。(代码已做修改)
代码如下:

#include <iostream>
#include<bits/stdc++.h>
using namespace std;int main()
{string s;int len;cout<<"请输入明文:"<<endl;getline(cin,s);len = s.length();char a[100][100];for(int i = 0; i < 100 ;i++)        //初始化一个100x100,值都为*的二维矩阵{for(int k = 0; k < 100;k++){a[i][k] = '*';}}int j = 0,k = 0;int width = 5;  //设置默认宽度为5for(int i = 0; i < len ;i++)    //将输入的字符串存储在二维数组a[]里面,并去除空格{if(s[i] != ' '){a[j][k] = s[i];k++;if(k >= width){k = k % width;j++;}}}j++;cout<<"列值为"<<width<<"的矩阵是:"<<endl;for(int i = 0; i < j ;i++){for(int k = 0; k < width;k++){if (a[i][k] != '*'){cout<<a[i][k];}}cout<<endl;}cout<<"列置换后的密文为:"<<endl;for(int k = 0; k < width;k++)       //输出列置换后的密文{for(int i = 0; i < j ;i++){if (a[i][k] != '*'){printf("%c",a[i][k]);}else{printf(" ");}}}return 0;
}
 结果如图

  • 代替密码

    代码如下:
#Caesar密码(加法加密)
def encode(b,k):            #加密函数c = []for temp in b:if temp != ' ':if ord(temp)+k > ord('Z'):c.extend(chr((ord(temp)+k)-26))else:c.extend(chr(ord(temp)+k))return c
def decode(b,k):            #解密函数c = []for temp in b:if temp != ' ':if ord(temp)-k < ord('A'):c.extend(chr((ord(temp)-k)+26))else:c.extend(chr(ord(temp)-k))return ca = input('请输入明文:\n')
k = int(input('请输入移位值:'))
b = []
b.extend(a)
len = len(b)
en = []
en = encode(b,k)
print("经过"+str(k)+"移位后的密文为:")
for temp in en:print(temp,end = ' ')
de = decode(en,k)
print("\n经过"+str(k)+"移位还原得到的明文为:")
for temp in de:print(temp,end = ' ')
 结果如图



代码如下:

#Caesar密码(乘法加密)
#print(ord('A'))  #65
#print(ord('Z'))  #90def judge(a,b):             #判断两个数是否互质temp = 0while(b != 0):temp = b;b = a % ba = tempif(a == 1):return Trueelse:return FalseB = 26
while(True):A = int(input("请输入一个与26互素的正整数:"))if(judge(A,B)):break;else:print("您输入的数字不符合要求,请按要求输入。")
a = input('请输入明文:\n')
info = {}
j = 0
for i in range(len(a)):if(a[i] != ' '):info[j] = a[i]j += 1
print("K值为"+str(A)+"乘法加密的密文为:")
for i in range(B):print(info[(i*A)%26],end = ' ')
 结果如图:

c++、python实现置换密码(栅栏技术,列置换)、替代密码(加法密码(Caesar密码),乘法密码)相关推荐

  1. CTF密码学·置换密码,栅栏密码,曲路密码

    CTF密码学·置换密码,栅栏密码,曲路密码 1.置换密码 列置换 周期置换 2.栅栏密码 3.曲路密码 1.置换密码 置换密码(Permutation Cipher)又叫换位密码(Transposi- ...

  2. 爬虫技术python流程图_基于Python的网络爬虫技术研究

    基于 Python 的网络爬虫技术研究 王碧瑶 [摘 要] 摘要:专用型的网络爬虫能够得到想要的返回结果 , 本文就以拉勾网作 为例子 , 对基于 Python 的网络爬虫技术进行研究和分析. [期刊 ...

  3. 使用Python+Tensorflow的CNN技术快速识别验证码

    北京 上海巡回站 | NVIDIA DLI深度学习培训 2018年1月26/1月12日 NVIDIA 深度学习学院 带你快速进入火热的DL领域 阅读全文                        ...

  4. 6.3 Python图像处理之图像编码技术和标准-小波变换编码

    6.3 Python图像处理之图像编码技术和标准-小波变换编码 文章目录 6.3 Python图像处理之图像编码技术和标准-小波变换编码 1 算法原理 2 代码 3 效果 1 算法原理 所谓的小波的小 ...

  5. 6.2 Python图像处理之图像编码技术和标准-余弦变换编码

    6.2 Python图像处理之图像编码技术和标准-余弦变换编码 文章目录 6.2 Python图像处理之图像编码技术和标准-余弦变换编码 1 算法原理 2 代码 3 效果 (6)图像编码技术和标准,包 ...

  6. python网络爬虫技术-基于Python的网络爬虫技术综述

    汪洋 姜新通 [摘 要]人类社会已经进入大数据时代,这正在改变着我们的工作和生活.随着互联网的兴起和发展,同时也产生了各种对人类有价值的数据.快速搜索数据和充分利用数据信息已成为一个巨大挑战.这样的需 ...

  7. Python+大数据-Spark技术栈(二)SparkBaseCore

    Python+大数据-Spark技术栈(二)SparkBase&Core 学习目标 掌握SparkOnYarn搭建 掌握RDD的基础创建及相关算子操作 了解PySpark的架构及角色 环境搭建 ...

  8. Python常用6个技术网站汇总分享!

    Python是一门面向对象的编程语言,它具有丰富和强大的库,能够把用其他语言编写的各种模块轻松地联结在一起,因此也常被称为"胶水语言".Python技术会随着互联网的不断发展一直迭 ...

  9. 基于Python的验证码识别技术

    基于Python的验证码识别技术 作者:强哥 概述 前言 准备工作 识别原理 图像处理 切割图像 人工标注 训练数据 检测结果 搞笑一刻 福利一刻 推荐阅读 前言 很多网站登录都需要输入验证码,如果要 ...

最新文章

  1. 使用java调用fastDFS客户端进行静态资源文件上传
  2. CMD查询Mysql中文乱码的解决方法
  3. 如何写出让同事好维护的代码?
  4. Python学习笔记之函数(五)
  5. MFC开发IM-第二十八篇、acl 的编译与使用
  6. 【ES】ES 运用search_after来进行深度分页
  7. 客户服务器网络系统的优缺点,浅析网络存储方案的三种类型及其优缺点
  8. (9)二进制文件方式部署Kubernetes高可用集群----------部署master节点
  9. LY.JAVA.DAY12.Scanner
  10. ubantu网络调试助手的安装以及打开
  11. bl小说里面有个机器人管家_不久的未来 有个“机器人管家”或不再是梦想
  12. 利用osgEarth在画国界线时报错“Crop failed - GEOS not available”
  13. 海大11年春第5题:编程输出[m,n]之间所有素数,m,n由键盘输入。(10分)
  14. 极光小课堂 | 极光一键登录集成手册--Android
  15. win10禁止计算机进入休眠,Win10怎么关闭系统休眠 Win10关闭系统休眠方法
  16. input type=file 标签禁止让用户手动输入
  17. 再来30个!中国联通5G应用创新案例
  18. IDEA全屏代码后左侧有很多空白解决方法
  19. 深入理解java虚拟机 (周志明)JVM个人总结
  20. Python爬虫+数据可视化教学:分析猫咪交易数据

热门文章

  1. Nature Aging | 复旦大学冯建峰/程炜揭示每晚睡7小时刚刚好,睡过多或过少都有损大脑和心理健康...
  2. 纳米红光更安全的养生方式——红光光浴#大健康#红光光浴#红光#种光光学
  3. linux 分配git用户名和密码,配置Git记住用户名密码的俩种方法
  4. idea很带劲的插件
  5. 微信小程序 怎么插入图片
  6. C++作业5 求和 、数组选择
  7. 转载:数学工具常见问题集
  8. Date对象在Safari与IOS中的“大坑”
  9. MySQL免安装版配置部署详细教程
  10. A-瑞神的序列 B- 消消乐大师-Q老师(M3)