自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

cat marshal的博客

转载请注明出处

  • 博客(104)
  • 资源 (3)
  • 收藏
  • 关注

转载 进程和线程的区别

https://www.cnblogs.com/zhehan54/p/6130030.html

2019-11-04 11:10:54 206

原创 Redis的单线程基本模型

Redis的单线程基本模型Redis客户端对服务端的每次调用都经历了发送命令,执行命令,返回结果三个过程。其中执行命令阶段,由于Redis是单线程来处理命令的,所以每一条到达服务端的命令不会立刻执行,所有的命令都会进入一个队列中,然后逐个被执行。并且多个客户端发送的命令的执行顺序是不确定的。但是可以确定的是不会有两条命令被同时执行,不会产生并发问题,这就是Redis的单线程基本模型...

2019-11-04 10:27:37 289

原创 redis哨兵机制

redis哨兵机制前提:redis主从架构下如何才能做到99.99%的高可用性?##1、哨兵的介绍sentinal,中文名是哨兵哨兵是redis集群架构中非常重要的一个组件,主要功能如下(1)集群监控,负责监控redis master和slave进程是否正常工作(2)消息通知,如果某个redis实例有故障,那么哨兵负责发送消息作为报警通知给管理员(3)故障转移,如果master no...

2019-11-04 10:11:14 255

原创 redis主从复制

redis主从复制原理#1.主从架构的核心原理当启动一个slave node的时候,它会发送一个PSYNC命令给master node如果这是slave node重新连接master node,那么master node仅仅会复制给slave部分缺少的数据; 否则如果是slave node第一次连接master node,那么会触发一次full resynchronization开始ful...

2019-11-04 10:09:40 150

原创 redis持久化方式

Redis 是一个开源( BSD 许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。它支持的数据类型很丰富,如字符串、链表、集 合、以及散列等,并且还支持多种排序功能。什么叫持久化?用一句话可以将持久化概括为:将数据(如内存中的对象)保存到可永久保存的存储设备中。持久化的主要应用是将内存中的对象存储在数据库中,或者存储在磁盘文件中、 XML 数据文件中等等。从应用层与系...

2019-11-04 10:07:55 159

原创 JWT结合RSA算法的授权中心

- 我们首先利用RSA生成公钥和私钥。私钥保存在授权中心,公钥保存在Zuul和各个信任的微服务用户请求登录授权中心校验,通过后用私钥对JWT进行签名加密返回jwt给用户用户携带JWT访问Zuul直接通过公钥解密JWT,进行验证,验证通过则放行请求到达微服务,微服务直接用公钥解析JWT,获取用户信息,无需访问授权中心...

2019-11-04 08:55:21 619

转载 Spring 中拦截器(Interceptor)与过滤器(Filter)的区别

先通俗解释下:拦截器 :是在面向切面编程的就是在你的service或者一个方法,前调用一个方法,或者在方法后调用一个方法比如动态代理就是拦截器的简单实现,在你调用方法前打印出字符串(或者做其它业务逻辑的操作),也可以在你调用方法后打印出字符串,甚至在你抛出异常的时候做业务逻辑的操作。过滤器:是在javaweb中,你传入的request、response提前过滤掉一些信息,或者提前设置一些参数,...

2019-10-16 08:48:25 275

转载 深入了解RabbitMQ工作原理及简单使用

RabbitMQ系列文章https://www.cnblogs.com/vipstone/p/9275256.htmlRabbitMQ简介在介绍RabbitMQ之前实现要介绍一下MQ,MQ是什么?MQ全称是Message Queue,可以理解为消息队列的意思,简单来说就是消息以管道的方式进行传递。RabbitMQ是一个实现了AMQP(Advanced Message Queuing P...

2019-10-13 17:24:02 331

原创 redis的线程模型

redis的线程模型是什么?1、面试题1,redis和memcached有什么区别?2,redis的线程模型是什么?3,为什么单线程的redis比多线程的memcached效率要高得多(为什么redis是单线程的但是还可以支撑高并发)?2、面试官心里分析这个是问redis的时候,最基本的问题吧,redis最基本的一个内部原理和特点,就是redis实际上是个单线程工作模型,你要...

2019-10-13 16:51:44 154

原创 Mybaties框架结构(留作复习用)

1–框架架构框架架构讲解:(1)加载配置:配置来源于两个地方,一处是配置文件,一处是Java代码的注解,将SQL的配置信息加载成为一个个MappedStatement对象(包括了传入参数映射配置、执行的SQL语句、结果映射配置),存储在内存中。(2)SQL解析:当API接口层接收到调用请求时,会接收到传入SQL的ID和传入对象(可以是Map、JavaBean或者基本数据类型),Myb...

2019-09-24 19:57:19 530 1

原创 springMVC架构和核心组件

1架构图2 架构流程1、 用户发送请求至前端控制器DispatcherServlet2、 DispatcherServlet收到请求调用HandlerMapping处理器映射器。3、 处理器映射器根据请求url找到具体的处理器,生成处理器对象(代理) 及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。4、 DispatcherServlet通过Ha...

2019-09-24 17:12:09 182

转载 HashMap源码

因为是源码所以有点/* * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. */package java.util;im...

2019-09-24 10:21:53 139

原创 DRUID介绍

DRUID介绍DRUID是阿里巴巴开源平台上一个数据库连接池实现,它结合了C3P0、DBCP、PROXOOL等DB池的优点,同时加入了日志监控,可以很好的监控DB池连接和SQL的执行情况,可以说是针对监控而生的DB连接池(据说是目前最好的连接池,不知道速度有没有BoneCP快).配置参数和其它连接池一样DRUID的DataSource类为:com.alibaba.druid.pool.Dru...

2019-09-23 17:53:52 223

转载 zookeeper的分布式锁

聊聊zookeeper的分布式锁分布式锁就是多台机器,分布在不同的JVM中,这些不同JVM内的方法需要获取一个唯一锁,比如获取锁之后要把数据写入数据库,保证数据在同一时刻只有一台机器写入数据库。分布式锁的实现有多种实现方法,除了今天聊到的ZK实现的分布式锁还有Redis通过SETNXPX或Lua脚本实现,还可以通过数据库的锁实现,但今天咱们主要聊一下ZK的分布式锁的原理实现。zookeepe...

2019-09-18 09:40:52 106

原创 Git创建本地版本库等等

1—命令行创建先在E盘创建一个文件夹再在里面右键鼠标出来Git bash here$ mkdir gittest$ cd gittest$git init有这个.gits说明创建成功

2019-09-13 16:51:29 139

原创 nginx: [error] OpenEvent("Global\ngx_reload_8504") failed (2: The system cannot find the file

遇到这样的错E:\nginx>nginx -s reloadnginx: [error] OpenEvent("Global\ngx_reload_8504") failed (2: The system cannotfind the file specified)可以尝试先关闭,再启动的方式启动nginxC:\Windows\System32\cmd.exestart ng...

2019-09-09 19:34:03 3863

原创 springboot相关

233出现这个不要慌 ,不影响代码运行 spring boot Configuration Annotation Proessor not found in classpath

2019-09-09 15:36:47 129

原创 springcloud各种依赖

<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.7.RELEASE</version...

2019-09-06 17:59:23 6749

原创 linux下redis安装和启动

Linux下安装Redis1-redis是C语言开发,安装redis需要先将官网下载的源码进行编译,编译依赖gcc环境。如果没有gcc环境,需要安装gcc:yum install gcc-c++进入解压文件夹,cd redis-3.0.01.1执行 make安装:[root@localhost redis]# make PREFIX=/usr/local/redis install安...

2019-09-06 17:17:08 166

原创 rabbit安装,查看状态,等等

1查看状态http://192.168.63.131:15672/#

2019-09-05 15:30:18 1078

原创 Linux下永久关闭防火墙操作方法及其他方法

1.首先查看防火墙状态:service iptables status[html] view plain copy[html] view plain copy永久性生效,重启后不会复原开启:chkconfig iptables on关闭:chkconfig iptables off[html] view plain copy2.即时生效,重启后复原开启:service ip...

2019-09-05 15:21:04 12799

转载 JVM is using the client VM [Java HotSpot(TM) Client VM] but should be using a server VM

在Linux 6.5 下安装Elasticsearch 出现错误: JVM is using the client VM [Java HotSpot(TM) Client VM] but should be using a server VM for the best performance JVM正在使用客户机VM [Java HotSpot(TM)客户机VM],...

2019-09-05 10:35:06 2641

原创 记录ElastaicSearch遇到的问题

1.Elasticsearch介绍和安装用户访问我们的首页,一般都会直接搜索来寻找自己想要购买的商品。而商品的数量非常多,而且分类繁杂。如何能正确的显示出用户想要的商品,并进行合理的过滤,尽快促成交易,是搜索系统要研究的核心。面对这样复杂的搜索业务和数据量,使用传统数据库搜索就显得力不从心,一般我们都会使用全文检索技术,比如Solr。不过今天,我们要讲的是另一个全文检索技术:Elastic...

2019-09-04 16:44:30 455

原创 Elasticsearch 2.1.基本概念

Elasticsearch也是基于Lucene的全文检索库,本质也是存储数据,很多概念与MySQL类似的。对比关系:索引(indices)--------------------------------Databases 数据库 类型(type)-----------------------------Table 数据表 文档(Document)---------------...

2019-09-03 16:48:37 153

原创 记录kibana遇到的问题

1登录错误 Login is currently disabled. Administrators should consult the Kibana logs 解决方法:把配的elasticsearc服务器前面的”#“去掉#服务器地址因人而异***#elasticsearch.url: "http://192.168.63.131:9200"改为elasticsearc...

2019-09-03 11:16:03 2516

原创 SecureCRSecureFX远程工具的使用

Linux远程工具SecureCRSecureFX的使用配置网卡vi /etc/sysconfig/network-scripts/ifcfg-eth0每个人的情况不太一样 DEVICE=eth0 HWADDR=00:0c:29:40:f6:68 TYPE=Ethernet UUID=26b72759-2362-4824-8c4f-2690ab531bd8...

2019-09-01 22:39:00 2853

转载 注解@CrossOrigin的作用

原文链接https://www.cnblogs.com/mmzs/p/9167743.html#_label1_0注解@CrossOrigin出于安全原因,浏览器禁止Ajax调用驻留在当前原点之外的资源。例如,当你在一个标签中检查你的银行账户时,你可以在另一个选项卡上拥有EVILL网站。来自EVILL的脚本不能够对你的银行API做出Ajax请求(从你的帐户中取出钱!)使用您的凭据。...

2019-08-30 17:54:39 6855 1

原创 nginx介绍和相关的配置

1nginx是什么?Nginx 是俄罗斯人 Igor Sysoev为俄罗斯访问量第二的Rambler.ru站点开发的一个十分轻量级的HTTP服务器。它是一个高性能的HTTP和反向代理服务器,同时也可以作为IMAP/POP3/SMTP的代理服务器。nginx使用的是BSD许可。Nginx 以事件驱动的方式编写,所以有非常好的性能,同时也是一个非常高效的反向代理、负载平衡。Nginx 因为它的稳...

2019-08-30 15:24:10 283

原创 linux下启动fastDFS

1-部署文件服务器需要的软件包drwxr-xr-x. 10 8980 users 4096 8月 28 03:23 FastDFSdrwxrwxr-x. 3 500 500 4096 5月 4 2014 fastdfs-nginx-module-rw-r--r--. 1 root root 17510 9月 21 2017 fastdfs-nginx-modu...

2019-08-28 15:02:04 15445

原创 linux下安装nginx

下载并解压好 [root@localhost nc]# ll 总用量 1424 drwxr-xr-x. 10 8980 users 4096 8月 28 03:23 FastDFS drwxrwxr-x. 3 500 500 4096 5月 4 2014 fastdfs-nginx-module -rw-r--r--. 1 root r...

2019-08-27 21:16:51 92

原创 SpringBoot控制台彩色日志输出颜色问题

-Dspring.output.ansi.enabled=ALWAYS

2019-08-21 21:07:33 8422 1

原创 due to missing ServletWebServerFactory bean.

spring Boot 出现:org.springframework.context.ApplicationContextException: Unable to start ServletWebServerApplicationContext due to missing ServletWebServerFactory bean.

2019-08-21 17:25:06 13111

原创 如何去掉Intellij IDEA过多的警告 设置警告级别

https://jingyan.baidu.com/article/656db918caa83fe381249cce.html

2019-08-14 17:19:06 3103

原创 MySQL server PID file could not be found!

linux 服务器安装mysql之后,重启 Mysql 有可能会经常碰到这样的错误提示:MySQL server PID file could not be found! [失败][root@localhost local]# MySQL server PID file could not be found! 反正我是经常碰到这样的情况,有些 reboo...

2019-08-08 17:09:59 234

转载 Linux下修改Mysql的用户(root)的密码

Linux下修改Mysql的用户(root)的密码修改的用户都以root为列。一、拥有原来的myql的root的密码;方法一:在mysql系统外,使用mysqladminmysqladmin -u root -p password “test123”Enter password: 【输入原来的密码】方法二:通过登录mysql系统,mysql -uroot -pEnter pas...

2019-08-08 15:29:10 95

转载 IntelliJ Idea解决Could not autowire. No beans of 'xxxx' type found的错误提示

IntelliJ Idea解决Could not autowire. No beans of ‘xxxx’ type found的错误提示https://blog.csdn.net/u012453843/article/details/54906905

2019-08-02 16:40:11 177

转载 idea编辑器下tomcat启动server乱码,TomcatLocalhostLog乱码,TomcatcatalinaLog乱码以及页面乱码问题的解决

https://blog.csdn.net/MTner/article/details/87084404

2019-07-29 16:02:13 315

原创 Spring AOP基于XML注解开发

1导的包和目录结构2XML配置文件<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns...

2019-07-27 20:02:12 125

原创 Spring AOP原生开发

jar包和工程目录xml<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:con...

2019-07-27 19:49:24 253

原创 Spring AOP AspectJ 开发

Spring AOP ---------AspectJ 开发1导的jar包和MyaspectJ包结构2-log4j.properties### \u914D\u7F6E\u6839 ###log4j.rootLogger = error,console,###,\u5176\u4ED6\u914D\u7F6EfileAppender,dailyRollingFile,ROLLING_...

2019-07-27 19:38:30 261

物联网安全_实验9 信息保密性、完整性和不可抵赖性的综合应用.doc

1、PGP概述 PGP(Pretty Good Privacy)的创始人是美国的Phil Zimmermann(菲利普•齐默曼),他在1991年把 RSA 公钥体系的方便和传统加密体系的高速度结合起来,并且在数字签名和密钥认证管理机制上有巧妙的设计。因此 PGP 成为几乎最流行的公匙加密软件包。PGP有不同的实现,如GnuPG和Gpg4win,其中GnuPG(Gnu Private Guard,简写为GPG)的核心算法是PGP,GnuPG本身是为Linux等开源操作系统设计的;而Gpg4win是windows下GnuGPG及图形前端的合集安装包,其核心为GnuPG,包括:(1)Kleopatra和GPA:GPG的密钥管理器,用于生成、导入和导出GPG密钥(包括公钥和私钥);(2)GpgOL:Outlook 的GPG支持插件;(3)GpgEX:资源管理器的GPG支持插件;(4)Claws Mail:内置GPG支持的邮件客户端。 PGP是一个基于RSA公钥加密体系的加密软件,是开源且免费的,后经互联网志愿者发展完善并广泛应用,具有如下特点:(1)选择最可用的加密算法作为系统的构造模块,所用算法已被广泛检验过,相当安全;并将这些算法集成到一个通用的应用程序中,该程序独立于操作系统和处理器,并且基于一个使用方便的小命令集;(2)是一个开源项目,程序、文档在Internet上公开;(3)可以免费得到运行于多种平台上的PGP版本,具有广泛的可用性;(4)不由任一政府或标准化组织所控制,使得PGP得到了广泛信任;(5)与商业公司(Network Associates)合作,提供一个全面兼容的、低价位的商业版本PGP。2010年6月被赛门铁克公司收购。由于这些特点,使得PGP得到了广泛的应用。 PGP常用的版本是PGP Desktop Professional,它可以用来加密文件,可以用来对邮件保密以防止非授权者阅读,还能对邮件加上数字签名从而使收信人可以确认邮件的发送者,并能确信邮件没有被篡改。同时,通过使用公钥密码算法,可以提供一种事先并不需要任何保密的渠道用来传递密匙的安全通讯方式。PGP功能强大,而且具有很快的速度,PGP提供的主要功能如表1.7.1所示。 表1.7.1 PGP的功能概述 功能 使用的算法 描述 消息加密 IDEA、CAST、3DES、TwoFish、ElGamal、RSA 发信人产生一次性会话密钥加密,用IDEA或CAST-128或3DES算法对消息进行加密;采用ElGamal或RSA算法用接收方的公钥加密会话密钥 数字签名 DSS/SHA-1、RSA/MD5 采用SHA-1或MD5消息摘要算法计算消息的摘要值(散列码),用发送者的私钥按DSS或RSA算法加密消息摘要 压缩 PKZIP 消息在传送和存储时可使用PKZIP压缩 E-mail兼容性 Radix-64 对E-mail应用提供透明性,采用基数64编码将加密后的消息(二进制流)转换为ASCII字符串 数据分段 - 为了适应最大消息长度限制,PGP执行分段和重新组装 2、PGP的密钥管理 PGP是一种混合密码系统,应用了多个密码算法,包括对称密码算法、非对称密码算法、消息摘要算法、数字签名等经典的密码学算法。为用户生成密钥对之后,可以进行邮件的加密、签名、解密和认证。在PGP中使用的加密算法和用途如表1.7.2所示。 表1.7.2 PGP中采用的各种密码算法及用途 密钥名 加密算法 用途 会话密钥 IDEA、AES 对传送消息的加解密,随机生成,一次性使用 公钥 RSA、Diffie-Hellman 对会话密钥加密,收信人和发信人共用 私钥 DSS/SHA、RSA/SHA 对消息的杂凑值加密以形成签名,发信人专用 口令 IDEA 对私钥加密以存储于发送端 从上表可以看出,PGP使用了四种类型的密钥:一次性会话传统密钥、公钥、私钥和基于口令短语的传统密钥/通行字短语。 会话密钥按ANSI X9.17标准,采用IDEA算法,以密文反馈模式(CFB)生成。当PGP用RSA算法为用户生成一个新的公钥/私钥对时,PGP会要求用户提供一个口令短语,对该短语使用MD5/SHA-1消息摘要算法生成一个散列码后,销毁该短语,从而把用户输入的口令短语转化为IDEA/CAST-128密钥,再使用这个密钥加密私钥,然后销毁这个散列码,并将加密后的私钥存储到私钥环中。当用户要访问私钥环中的私钥时,必须提供口令短语。PGP将取出加密后的私钥,生成散列码,解密私钥。 一个用户可能拥有多个公钥/私钥对,正确识别加密会话密钥和签名所用的特定公钥/私钥对的一个最简单的解决方案是将公钥和消息一起传送。但这种方式浪费了不必要的空间。PGP采用的解决方案是给每个公钥分配一个密钥标识(KeyID),并以极大的概率与用户标识(UserID)一一对应,即UserID和KeyID标识一个密钥。密钥标识至少为64位,因而密钥标识重复的可能性非常小。 PGP提供一种系统化的密钥管理方案来存储和组织这些密钥以保证有效使用这些密钥,它为每个节点(用户机器)提供一对数据结构,一个用于存放本节点自身的公钥/私钥对(即私钥环),另一个用于存放本节点知道的其他用户的公钥(即公钥环)。私钥环信息:时间戳、KeyID、公钥、私钥、UserID,其中UserID通常是用户的邮件地址。也可以是一个名字,可以重名;公钥环信息:时间戳、KeyID、公钥、对所有者信任度、用户ID、密钥合法度、签名、对签名者信任度,其中UserID为公钥的拥有者。多个UserID可以对应一个公钥。公钥环可以用UserID或KeyID索引。 如何保证用户公钥环上的公钥确实是指定实体的合法公钥,这是一个至关重要的问题。PGP提供几种可选的方案以减少用户公钥环中包含错误公钥的可能性:(1)物理上得到对方的公钥。这种方式最可靠,但有一定局限性;(2)通过电话验证公钥;(3)从双方都信任的第三方(个体或CA)处获得对方的公钥。 此外,PGP支持密钥管理服务器,用户可以将公钥发布在集中的密钥服务器上,供他人访问。 3、PGP的消息处理过程 PGP消息分成原始消息、签名部分和会话密钥部分三个部分。 PGP发送方处理消息的过程为:(1)签名:利用UserID作为索引,从私钥环中得到私钥;PGP提示输入口令短语,恢复私钥;构造签名部分;(2)加密:PGP产生一个会话密钥,并加密消息;PGP用接收者UserID从公钥环中获取其公钥;构造消息的会话密钥部分。 PGP接收方处理消息的过程为:(1)解密消息:PGP用消息的会话密钥部分中的KeyID作为索引,从私钥环中获取私钥;PGP提示输入口令短语,恢复私钥;PGP恢复会话密钥,并解密消息;(2)验证消息:PGP用消息的签名部分中的KeyID作为索引,从公钥环中获取发送者的公钥;PGP恢复被传输过来的消息摘要;PGP对于接收到的消息计算摘要,并与上一步的结果作比较。 4、PGP的信任模型 由于PGP重在广泛地在正式或非正式环境下的应用,所以它没有建立严格的公钥管理模式。尽管PGP没有包含任何建立认证权威机构或建立信任体系的规范,但它提供了一个利用信任关系的方法,将信任关系与公钥联系起来。PGP定义了与基于X.509真实的公钥基础设施(PKI)不同的证书模型,即所谓“信任网(Web of Trust)”模型。传统PKI模型依赖于CA层次体系验证证书和其中的密钥。而PGP模型则允许多重地、独立地而非特殊可信个体签署的“名字/密钥”关联来证明证书的有效性,其理论是认为“只要有足够的签名,<名字/密钥>关联就是可信的,因为不会所有的签名者都是‘坏’的”。PGP的信任网就像人际关系网一样,通过下述方式让使用公钥的人相信公钥是其所声称的持有者:(1)直接来自所信任人的公钥;(2)由所信赖的人为某个自己并不认识的人签署的公钥。因此,在PGP中得到一个公钥后,检验其签名,如果签名人自己认识并信赖他,就认为此公钥可用或合法。这样,通过所认识并信赖的人,就可以和总多不认识的人实现PGP的安全E-mail通信。 具体而言,在PGP中是通过在公钥环中的下述3个字段来实现Web of Trust信任模型的:(1)密钥合法性字段(key legitimacy field):指示用户公钥合法性的可信等级。信任级别越高,则用户标识UserID与密钥间的绑定关系就越强。这个字段是由PGP计算的;(2)签名信任字段(signature trust field):每一个公钥项都有一个或者多个签名,这是公钥环主人收集到的、能够认证该公钥项的签名。每一个签名与一个signature trust field关联,指示PGP用户信任签名者对此公钥证明的程度。key legitimacy field 是由多个signeture trust field 导出的;(3)所有者信任字段(owner trust field):指示此公钥对其他公钥证书进行签名的信任程度。这个信任程度是由用户给出的。 PGP使用以个人为中心的信任模型,采取一种“社会信任链”的方式进行公钥分发。在这种方式下,用户可以自行决定对周围的联系人是否信任,并可以决定信任度的高低。用户只接收信任的朋友传送来的公钥,并且这些公钥都带有签名。这种方式反映了社会交往的本质,比较适合一般场合下的安全通信。 本实验通过实际操作,了解PGP/GPG4Win软件的常用功能,利用PGP/GPG4Win软件实现密钥管理、对文件和电子邮件的签名与加密等操作。

2019-06-23

物联网安全_实验四凯撒密码.doc

凯撒密码(caeser)是罗马扩张时期朱利斯•凯撒(Julius Caesar)创造的,用于加密通过信使传递的作战命令。它将字母表中的字母移动一定位置而实现加密。 古罗马随笔作家修托尼厄斯在他的作品中披露,凯撒常用一种“密表”给他的朋友写信。这里所说的密表,在密码学上称为“凯撒密表”。用现代的眼光看,凯撒密表是一种相当简单的加密变换,就是把明文中的每一个字母用它在字母表上位置后面的第三个字母代替。古罗马文字就是现在所称的拉丁文,其字母就是我们从英语中熟知的那26个拉丁字母。因此,凯撒密表就是用d代a,用e代b,……,用z代w。这些代替规则也可用一张表格来表示,所以叫“密表”。 基本原理 在密码学中存在着各种各样的置换方式,但所有不同的置换方式都包含2个相同的元素。密钥和协议(算法)。凯撒密码的密钥是3,算法是将普通字母表中的字母用密钥对应的字母替换。置换加密的优点就在于它易于实施却难于破解. 发送方和接收方很容易事先商量好一个密钥,然后通过密钥从明文中生成密文,即是敌人若获取密文,通过密文直接猜测其代表的意义,在实践中是不可能的。 凯撒密码的加密算法极其简单。其加解密过程如下: 加密解密算法 凯撒密码的替换方法是通过排列明文和密文字母表,密文字母表示通过将明文字母表向左或向右移动一个固定数目的位置。例如,当偏移量是左移3的时候(解密时的密钥就是3): 明文字母表:ABCDEFGHIJKLMNOPQRSTUVWXYZ 密文字母表:DEFGHIJKLMNOPQRSTUVWXYZABC 使用时,加密者查找明文字母表中需要加密的消息中的每一个字母所在位置,并且写下密文字母表中对应的字母。需要解密的人则根据事先已知的密钥反过来操作,得到原来的明文。例如: 明文:THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG 密文:WKH TXLFN EURZQ IRA MXPSV RYHU WKH ODCB GRJ 凯撒密码的加密、解密方法还能够通过同余数的数学方法进行计算。首先将字母用数字代替,A=0,B=1,...,Z=25。此时偏移量为n的加密方法即为: E (x)= (x+n) mod 26 解密就是: D (x)= (x-n) mod 26

2019-06-22

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除