首页 > 其他分享 >密码学初识

密码学初识

时间:2024-09-11 19:47:27浏览次数:1  
标签:字符 int 密码 初识 密码学 凯撒

咱也是学上密码学了

密码?

可能有人要说:
啊!这个我懂!不就是账号密码什么的嘛
可能还有人说:
啊!这个我懂!我还会背摩斯密码呢!

但是,“密码学”研究的主要是加密与解密的过程
它这个“密码”指的不是寻常说的 password (口令),而是 cryptography

历史上,密码学经过了从古典到近代再到现代的发展阶段

现在来看几个最有名的

凯撒密码

相当古典,也相当朴素,但却有这么一个威风凛凛的名字……

对字符进行简单的移位就行了
字符体系里有多少字符,最多就移多少位
如果是英文字母的话,最多移26次就能破解

简直是最简单的加密措施了是不是?!
连小学生都能发明出来啊!


放两个我在学校网安宣传周活动里看到的凯撒密码:
1.Txkdufkvrxk
2.Ufafxk
瞪眼法对我来说太难了,所以当即写了个程序

#include<bits/stdc++.h>
using namespace std;
int main(){
	string a;cin>>a;
	for(int i=0;i<26;i++){
		for(int j=0;j<a.length();j++){
			if(a[j]>'a')	cout<<(char)('a'+(a[i]-'a'+i)%26);
			else	cout<<(char)('A'+(a[i]-'A'+i)%26);
		}cout<<endl;
	}
	return 0;
}

解出来是wangxinyuan和xidian

RSA

大名鼎鼎的非对称加密算法,影响范围相当地广
全称为……Republic Science Association? Rabbit Snake ant?
都不是,R,S,A分别为发明这套算法的三个人的姓氏首字母……

它的设计思路主要基于:难以对大整数进行质因数分解
而证明过程主要基于欧拉定理

未完待续

标签:字符,int,密码,初识,密码学,凯撒
From: https://www.cnblogs.com/CYuPan/p/18402102

相关文章

  • 基于OpenSSL的密码管理系统-应用密码学课程报告
    第1章概要设计1.1设计目的本研究旨在设计并实现一个基于OpenSSL的密码管理系统,该系统具备密钥对的生成、密钥上传、密钥的核对、身份认证、文件与邮件的加密和解密、数字签名及数字证书管理等常用功能。研究的意义主要体现在以下几个方面:提升网络信息安全水平:通过集成多种密......
  • 走进C++——初识与探索
    一.C++发展历史  C++的起源可以追溯到1979年,当时BjarneStroustrup(本贾尼·斯特劳斯特卢普)在⻉尔实验室从事计算机科学和软件⼯程的研究⼯作。⾯对项⽬中复杂的软件开发任务,特别是模拟和操作系统的开发⼯作,他感受到了现有语⾔(如C语⾔)在表达能⼒、可维护性和可扩展性......
  • C语言程序设计(初识C语言后部分)
    晴天也会突然下暴雨,温柔的人也会不开心。二十一,实用调试技巧1.什么是bug?2.调试是什么?有多重要?3.debug和release的介绍4.vs环境调试介绍5.如何写出好(易于调试)的代码6.编程常见的错误1.什么是bug?就是使计算机程序或者计算机硬件出现问题,不能正常运行的地方称为bug(缺陷......
  • 【实验楼】Linux系统管理-实验一:初识命令行
    Linux系统管理-实验一:初识命令行尝试简单命令请在命令行中显示当前所处的目录的名字。pwd请在命令行中显示当前主机名。hostname请在命令行中显示当前所使用的用户的名称。whoami尝试命令的选项请下达在15分钟内模拟关机的命令。shutdown-k15shutdown命令:https:/......
  • 初识:DynamicDatasource动态数据源
    目录主要作用具体例子其他Maven模块如何利用动态数据源模块就根据用户服务、订单服务、商品服务、DynamicDataSource服务,DynamicDataSource服务的application.yaml的配置信息,实现实现主从、读写分离、负载均衡、高可用性和故障切换主要作用支持多数据源切换:在微服务架......
  • javaSE初识
    前端:微信客户端  网页三剑客【 HTML(素颜)、CSS(化妆)、JS(行为)】 后端:服务器  帮你处理数据  JavaC++测试   测开:开发一些测试工具运维:保证你的产品时时刻刻安全运行Java的祖师爷--詹姆斯*高斯林Java的特点:一次编译,到处运行跨平台的HelloWorld新建文本......
  • C语言程序设计(初识C语言后部分)
    不要重来,不要白来,不要重来。5.指针和数组数组:一组相同类型元素的集合指针变量:是一个变量,存放的地址要理解数组名大部分情况下是数组的首元素地址6.二级指针先了解一级指针变量二级指针变量(二级指针变量是用来存放一级指针变量的地址的)7.指针数组指针数组是......
  • 初识IO模型,简单了解几种常见的IO模型
    什么是IO?简单来讲,就是输入和输出从计算机结构分析:从计算机结构来看,输入输出是一个重要的子系统,负责管理计算机与外部设备之间的数据交换。不仅仅是硬盘和内存之间的传输,还包括各种输入输出设备(如键盘、鼠标、显示器、硬盘、网络设备)与内存、处理器之间的数据交互。程序控制......
  • 初识jQuery
    jQuery简介jQuery由美国人JohnResig于2006年创建jQuery是目前最流行的JavaScript程序库,它是对JavaScript对象和函数的封装它的设计思想是writeless,domore例:实现隔行变色效果,只需一句关键代码<!DOCTYPEhtml><html><head><title>订单表格</title></head><!--......
  • C语言程序设计(初识C语言后部分)
    十九,指针1)指针是什么?指针理解的2个要点:1,指针是内存中一个最小单元的编号,也就是地址2,平时口语中说的指针,通常指的是指针变量,是用来存放内存地址的变量总结:指针就是地址,口语中说的指针通常指的是指针变量。指针变量:我们可以通过&(取地址操作符)取出变量的内存起始地址,把......