精华内容
下载资源
问答
  • LTE 安全功能 1 目 录 2 3 1 概述 本文档对 LTE 安全技术进行的总结描述了与安全相关的协议重点包括安全流程梳理 1.1 参考文献 [1] 3GPP TS 33.401"3GPP System Architecture Evolution (SAE; Security architecture...
  • 为什么需要使用配置中心常用的配置管理解决方案有哪些缺点?答:配置管理解决方案的缺点:硬编码(缺点:需要修改代码、繁琐、风险大)写在properties文件里面(缺点:在集群环境下,需要替换和重启)写在xml配置...

    为什么需要使用配置中心

    常用的配置管理解决方案有哪些缺点?

    答:配置管理解决方案的缺点:

    硬编码(缺点:需要修改代码、繁琐、风险大)

    写在properties文件里面(缺点:在集群环境下,需要替换和重启)

    写在xml配置文件中,一般和应用一起打包(缺点:需要重新打包和重启)

    为什么要使用Spring Cloud Config 配置中心?

    答:由于常用的配置管理有很大的缺点,故spring cloud采用了集中式的配置中心来管理每个服务的配置信息。Spring cloud config配置中心,在微服务分布式系统中,采用服务端和客户端来提供可扩展的配置服务。配置中心负责管理所有的服务的各种环境配置文件。配置服务中心默认采用了Git的方式存储配置文件,因此我们很容易部署修改,有助于对环境配置进行版本管理。

    Spring Cloud Config 配置中心解决了什么问题?

    答:spring cloud config解决了微服务配置的中心化、版本控制、平台独立、语言独立等问题。

    其特性如下:

    提供服务端和客户端支持(spring cloud config server和spring cloud config client)

    集中式管理分布环境下的应用配置

    基于spring环境,无缝与spring应用集成

    可用于任何语言开发的程序

    默认实现基于git仓库,可以进行版本管理

    配置文件的命名规则与访问规则

    @EnableConfigServer注解的作用是什么?

    答:@EnableConfigServer注解的作用是开启配置中心服务

    使用配置中心时,配置文件命名规则与访问规则是什么?

    13ce7d51d3b8f3610498bf9dc118ef5a.png

    访问规则

    3afd8429b5ec2765f247ac5bcec32335.png

    编写配置中心客户端

    配置中心客户端中的配置文件命名有什么要求?

    答:配置中心客户端的配置文件名称必须为bootstrap.properties.

    配置中心原理讲解

    配置中心的原理是什么?

    答:配置中心的原理

    当开发人员修改远程仓库中的数据时,自动同步到本地仓库中,当客户端进行访问服务的时候,服务到本地仓库中拿取数据,保证客户端得到的数据与远程仓库中的数据保存一致。

    在git端修改配置后,在不重启服务中如何让客户端生效

    @RefreshScope注解的作用是什么?

    答:@RefreshScope注解的作用是刷新作用域

    加密&bus

    在配置中心服务端开启对称加密

    什么是对称加密?

    答:对称加密是最快速、最简单的一种加密方式,加密(encryption)与解密(decryption)用的是同样的钥匙

    设置加密环境需要哪些步骤?

    答:设置加密环境步骤:

    设置密钥key.如:encrypt=admin

    配置JCE

    JDK:将两个 jar 文件放到%JDK_HOME%jrelibsecurity 下

    JRE:将两个 jar 文件放到%JRE_HOME%libsecurity 下

    客户端服务通过服务端获取加密后的配置信息

    创建配置中心客户端。

    修改POM文件,添加相关坐标。

    修改POM文件,添加配置中心客户端坐标。

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.1.9.RELEASE</version>
            <relativePath/> <!-- lookup parent from repository -->
        </parent>
        <groupId>com.bjsxt</groupId>
        <artifactId>25config-client</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <name>25config-client</name>
        <description>Demo project for Spring Boot</description>
    
        <properties>
            <java.version>1.8</java.version>
            <spring-cloud.version>Greenwich.SR4</spring-cloud.version>
        </properties>
    
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-config</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-actuator</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
            </dependency>
    
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
            </dependency>
        </dependencies>
    
        <dependencyManagement>
            <dependencies>
                <dependency>
                    <groupId>org.springframework.cloud</groupId>
                    <artifactId>spring-cloud-dependencies</artifactId>
                    <version>${spring-cloud.version}</version>
                    <type>pom</type>
                    <scope>import</scope>
                </dependency>
            </dependencies>
        </dependencyManagement>
    
        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
            </plugins>
        </build>
    
    </project>

    修改配置文件,添加服务相关配置。

    修改配置文件,添加配置中心相关配置。

    spring.application.name=gl-config-client
    server.port=9051
    
    #设置服务注册中心地址
    eureka.client.service-url.defaultZone=http://admin:1234@192.168.41.242:5050/eureka/,http://admin:1234@192.168.41.242:5051/eureka/
    
    #开启读取配置中心的配置,默认false
    spring.cloud.config.discovery.enabled=true
    #对应eureka中的配置中心serviceId,默认为configserver
    spring.cloud.config.discovery.service-id=gl-config-server
    #指定环境
    spring.cloud.config.profile=dev
    #git标签
    spring.cloud.config.label=master

    测试通过访问配置中心客户端获取配置内容。

    什么是非对称加密

    什么是非对称加密

    答:非对称加密是指加密和解密使用的是不同的两个密钥

    对称加密与非对称加密有何区别?

    答:对称加密算法在加密和解密过程时使用的是同一个密钥;非对称加密算法需要两个密钥来进行加密和解密,这两个密钥是公开密钥和私有密钥

    java-keytool证书-使用说明

    什么是java-keytool?

    如何使用java-keytool生成秘钥?

    keytool -genkey -alias "密钥别名" -keyalg "生成密钥的算法" -keystore "生成的密钥文件名称"

    ZooKeeper与Eureka的区别

    9d69e50d25263828ef4a933bf35aa440.png

    配置中心使用非对称加密算法对配置信息进行加密解密处理

    创建配置中心服务端。

    修改POM文件,添加相关坐标。

    修改POM文件,添加配置中心服务端坐标。

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.1.9.RELEASE</version>
            <relativePath/> <!-- lookup parent from repository -->
        </parent>
        <groupId>com.bjsxt</groupId>
        <artifactId>26config-server-rsa</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <name>26config-server-rsa</name>
        <description>Demo project for Spring Boot</description>
    
        <properties>
            <java.version>1.8</java.version>
            <spring-cloud.version>Greenwich.SR4</spring-cloud.version>
        </properties>
    
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-config-server</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
            </dependency>
    
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
            </dependency>
        </dependencies>
    
        <dependencyManagement>
            <dependencies>
                <dependency>
                    <groupId>org.springframework.cloud</groupId>
                    <artifactId>spring-cloud-dependencies</artifactId>
                    <version>${spring-cloud.version}</version>
                    <type>pom</type>
                    <scope>import</scope>
                </dependency>
            </dependencies>
        </dependencyManagement>
    
        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
            </plugins>
        </build>
    
    </project>

    修改配置文件,添加服务相关配置

    spring.application.name=gl-config-server-rsa
    server.port=9050
    
    #设置服务注册中心地址
    eureka.client.service-url.defaultZone=http://admin:1234@192.168.41.242:5050/eureka/,http://admin:1234@192.168.41.242:5051/eureka/
    
    #Git配置
    spring.cloud.config.server.git.uri=https://gitee.com/gl_baishu/config

    修改配置文件,添加秘钥相关配置。

    #非对称加密 RSA算法
    # keytool -genkey -alias "config-info" -keyalg "RSA" -keystore "encrypt-info.keystore"
    # keystore文件的路径
    encrypt.key-store.location=classpath:encrypt-info.keystore
    #alias指定密钥的别名,别名是公开的
    encrypt.key-store.alias=config-info
    #storepass 密钥仓库
    encrypt.key-store.password=123456
    #keypass 用来保护所生成密钥对中的私钥
    encrypt.key-store.secret=654321

    通过keytool工具创建密钥文件。

    4dcaa5dd5b5b235cd6e2a97c2a1c4c5e.png

    访问配置中心服务端测试结果。

    创建配置中心客户端。

    修改POM文件,添加相关坐标。

    修改POM文件,添加配置中心客户端坐标。

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.1.9.RELEASE</version>
            <relativePath/> <!-- lookup parent from repository -->
        </parent>
        <groupId>com.bjsxt</groupId>
        <artifactId>26config-product-provider-rsa</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <name>26config-product-provider-rsa</name>
        <description>Demo project for Spring Boot</description>
    
        <properties>
            <java.version>1.8</java.version>
            <spring-cloud.version>Greenwich.SR4</spring-cloud.version>
        </properties>
    
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
            </dependency>
    
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-config</artifactId>
            </dependency>
    
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
            </dependency>
        </dependencies>
    
        <dependencyManagement>
            <dependencies>
                <dependency>
                    <groupId>org.springframework.cloud</groupId>
                    <artifactId>spring-cloud-dependencies</artifactId>
                    <version>${spring-cloud.version}</version>
                    <type>pom</type>
                    <scope>import</scope>
                </dependency>
            </dependencies>
        </dependencyManagement>
    
        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
            </plugins>
        </build>
    
    </project>

    修改配置文件,添加服务相关配置。

    修改配置文件,添加配置中心相关配置。

    spring.application.name=gl-config-product-provider-rsa
    server.port=9001
    
    #设置服务注册中心地址,指向另一个注册中心
    eureka.client.service-url.defaultZone=http://admin:1234@192.168.41.242:5050/eureka/,http://admin:1234@192.168.41.242:5051/eureka/
    
    #开启读取配置中心的配置,默认false
    spring.cloud.config.discovery.enabled=true
    #对应eureka中的配置中心serviceId,默认为configserver
    spring.cloud.config.discovery.service-id=gl-config-server-rsa
    #git标签
    spring.cloud.config.label=master

    使用httpUtilClient工具生成加密信息。

    在git的远程仓库中创建配置文件。

    测试配置中心服务端。

    访问客户端服务测试配置信息是否可用。

    配置中心的用户安全认证

    为什么需要开启配置中心的安全认证?

    答:不开启配置中心的安全认证的话,如果对方知道访问git的url路径,依然可以探寻到一些非公开信息,比如连接数据库的账号和密码。开启了配置中心的安全认证可以增加一层防护。

    什么是Spring Cloud Bus

    什么是Spring Cloud Bus?

    答:Spring Cloud Bus集成了市面上常用的消息代理(rabbitmq,kafka等),连接微服务系统中的所有节点,当有数据变更时,可以通过消息代理广播通知微服务及时变更数据;例如微服务的配置更新。

    采用bus实现自动刷新配置信息-Client刷新

    创建配置中心客户端项目。

    修改POM文件,添加相关坐标。

    修改POM文件,添加Bus amqp启动器坐标

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.1.9.RELEASE</version>
            <relativePath/> <!-- lookup parent from repository -->
        </parent>
        <groupId>com.bjsxt</groupId>
        <artifactId>25config-client</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <name>25config-client</name>
        <description>Demo project for Spring Boot</description>
    
        <properties>
            <java.version>1.8</java.version>
            <spring-cloud.version>Greenwich.SR4</spring-cloud.version>
        </properties>
    
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-config</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-actuator</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-bus-amqp</artifactId>
            </dependency>
    
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
            </dependency>
        </dependencies>
    
        <dependencyManagement>
            <dependencies>
                <dependency>
                    <groupId>org.springframework.cloud</groupId>
                    <artifactId>spring-cloud-dependencies</artifactId>
                    <version>${spring-cloud.version}</version>
                    <type>pom</type>
                    <scope>import</scope>
                </dependency>
            </dependencies>
        </dependencyManagement>
    
        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
            </plugins>
        </build>
    
    </project>

    修改配置文件,添加服务相关配置。

    修改配置文件,添加消息队列连接配置。

    spring.application.name=gl-config-client
    server.port=9051
    
    #设置服务注册中心地址
    eureka.client.service-url.defaultZone=http://admin:1234@192.168.41.242:5050/eureka/,http://admin:1234@192.168.41.242:5051/eureka/
    
    #开启读取配置中心的配置,默认false
    spring.cloud.config.discovery.enabled=true
    #对应eureka中的配置中心serviceId,默认为configserver
    spring.cloud.config.discovery.service-id=gl-config-server
    #指定环境
    spring.cloud.config.profile=dev
    #git标签
    spring.cloud.config.label=master
    
    management.endpoints.web.exposure.include=*
    
    #消息队列的连接配置
    spring.rabbitmq.host=192.168.170.128
    spring.rabbitmq.port=5672
    spring.rabbitmq.username=admin
    spring.rabbitmq.password=admin
    spring.rabbitmq.virtual-host=/

    访问刷新服务URL,查看测试结果。

    采用bus实现自动刷新配置信息-Server刷新

    创建配置中心服务端项目。

    修改POM文件,添加相关坐标。

    修改POM文件,添加Bus amqp启动器坐标

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.1.9.RELEASE</version>
            <relativePath/> <!-- lookup parent from repository -->
        </parent>
        <groupId>com.bjsxt</groupId>
        <artifactId>25config-server</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <name>25config-server</name>
        <description>Demo project for Spring Boot</description>
    
        <properties>
            <java.version>1.8</java.version>
            <spring-cloud.version>Greenwich.SR4</spring-cloud.version>
        </properties>
    
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-config-server</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-bus-amqp</artifactId>
            </dependency>
    
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
            </dependency>
        </dependencies>
    
        <dependencyManagement>
            <dependencies>
                <dependency>
                    <groupId>org.springframework.cloud</groupId>
                    <artifactId>spring-cloud-dependencies</artifactId>
                    <version>${spring-cloud.version}</version>
                    <type>pom</type>
                    <scope>import</scope>
                </dependency>
            </dependencies>
        </dependencyManagement>
    
        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
            </plugins>
        </build>
    
    </project>

    修改配置文件,添加服务相关配置。

    修改配置文件,添加消息队列连接配置。

    spring.application.name=gl-config-server
    server.port=9050
    
    #设置服务注册中心地址
    eureka.client.service-url.defaultZone=http://admin:1234@192.168.41.242:5050/eureka/,http://admin:1234@192.168.41.242:5051/eureka/
    
    #Git配置
    spring.cloud.config.server.git.uri=https://gitee.com/gl_baishu/config
    #spring.cloud.config.server.git.username=
    #spring.cloud.config.server.git.password=
    
    #端点暴露
    management.endpoints.web.exposure.include=*
    
    #消息队列的连接配置
    spring.rabbitmq.host=192.168.170.128
    spring.rabbitmq.port=5672
    spring.rabbitmq.username=admin
    spring.rabbitmq.password=admin
    spring.rabbitmq.virtual-host=/

    访问刷新服务URL,查看测试结果。

    展开全文
  • 对称加密算对称加密算法是加密和解密时使用相同的密钥,主要用于保证数据的机密性。最具有代表性的算法是20世纪70年代IBM公司提出的DES(dataencryption standard)算法;在此基础上...

    对称加密算

    对称加密算法是加密和解密时使用相同的密钥,主要用于保证数据的机密性。最具有代表性的算法是20世纪70年代IBM公司提出的DES(dataencryption standard)算法;在此基础上又提出了许多DES的改进算法,如三重DES(triple DES)、随机化DES(RDS)、IDEA(internationaldataencryptionalgorithm)、广义DES(generalizedDES)、NewDES、Blowfish、FEAL以及RC5等。2001年美国国家标准与技术研究院发布高级加密标准(advancedencryption standard,AES)取代了DES,成为对称密钥加密中最流行的算法之一。

    对称加密算法的优点是计算开销小、加密速度快,适用于少量或海量数据的加密,是目前用于信息加密的主要算法。

    其缺点是通信双方使用相同的密钥,很难确保双方密钥的安全性;密钥数据量增长时,密钥管理会给用户带来负担;此外,它仅适用于对数据进行加解密处理,提供数据的机密性,它不适合在分布式网络系统中使用,密钥管理困难,且成本较高。

    非对称加密算法

    非对称加密算法也叫公开密钥算法,其加密和解密是相对独立的,使用不同的密钥。它主要用于身份认证、数字签名等信息交换领域。公钥密码体制的算法中最著名的代表是RSA,此外还有背包密码、DSA,McEliece密码、Diffe_Hellman、Rabin、零知识证明、椭圆曲线、EIGamal算法等。非对称加密算法的优点是可以适应网络的开放性要求,且密钥管理问题也较为简单,可方便地实现数字签名和验证。其缺点是算法复杂、加密数据的速率较低。然而,无论是对称加密算法还是非对称加密算法都存在密钥泄露的风险。因此,Rivest在1989年开发出MD2算法,不需要密钥,引发了杂凑算法(也称Hash函数)的研究,即把任意长的输入消息字符串变化成固定长的输出串,不需要密钥,且过程是单向的,不可逆的。比较流行的算法有MD5,sha-1,RIPEMD以及Haval等。杂凑算法不存在密钥保管和分发问题,非常适合在分布式网络系统上使用,但因加密计算复杂,通常只在数据量有限的情形下使用,如广泛应用在注册系统中的口令密、软件使用期限加密等。数据加密技术能保证最终数据的准确性和安全性,但计算开销比较大,加密并不能防止数据流向外部,因此,加密自身不能完全解决保护数据隐私的问题。数据加密算法作为隐私保护的一项关键技术,大数据时代研究重点将集中在对已有算法的完善;综合使用对称加密算法和非对称加密算法。随着新技术的出现会研究出符合新技术发展的新加密算法。

    对称加密和非对称加密都有分国际算法和国密算法。

    非对称加密:RSA(国际算法),SM2(国密算法)

    对称加密:DES(国际算法), SM4(国密算法)

    以RSA加密过程为例

    RSA的公钥、私钥的组成,以及加密、解密的公式可见于下表:

    06c0878b516ba517341b4308aa70ea3d.png

    素数是这样的整数,它除了能表示为它自己和1的乘积以外,不能表示为任何其它两个整数的乘积。

    公约数只有1的两个数,叫做互质数。

    让m去被n整除,只取所得的余数作为结果,就叫做模运算。

    步骤例如:

    (1)设计公私密钥(e,n)和(d,n)。

    令p=3,q=11,得出n=p×q=3×11=33;f(n)=(p-1)(q-1)=2×10=20;取e=3,(3与20互质)则e×d≡1 modf(n),即3×d≡1 mod 20。

    d怎样取值呢?可以用试算的办法来寻找。试算结果见

    2bd9df7dad53d8231e6af726758dd524.png

    通过试算我们找到,当d=7时,e×d≡1 mod f(n)同余等式成立。因此,可令d=7。从而我们可以设计出一对公私密钥,加密密钥(公钥)为:KU=(e,n)=(3,33),解密密钥(私钥)为:KR =(d,n)=(7,33)。

    (2)英文数字化。

    将明文信息数字化,并将每块两个数字分组。假定明文英文字母编码表为按字母顺序排列数值,如表示

    6370aa74cc7db8acf34f9ddbcbe87462.png

    则得到分组后的key的明文信息为:11,05,25。

    (3)明文加密

    用户加密密钥(3,33)将数字化明文分组信息加密成密文。由C≡Me(mod n)因此,得到相应的密文信息为:11,31,16。

    (4)密文解密。

    用户B收到密文,若将其解密,只需要计算,即:

    26899a6e25c895ba3a0a777012a97f58.png

    用户B得到明文信息为:11,05,25。根据上面的编码表将其转换为英文,我们又得到了恢复后的原文“key”。

    RSA的缺点:

    1.产生密钥很麻烦,受到素数产生技术的限制,因而难以做到一次一密。

    2.分组长度太大,为保证安全性,n 至少也要 600 bits 以上,使运算代价很高,尤其是速度较慢,较对称密码算法慢几个数量级;且随着大数分解技术的发展,这个长度还在增加,不利于数据格式的标准化。因此,使用RSA只能加密少量数据,大量的数据加密还要靠对称密码算法。

    展开全文
  • 常见加密算法有哪些?是否对称

    千次阅读 2020-01-06 09:28:04
    常用的对称加密算法:DES、AES、3DES、RC2、RC4 常用的非对称加密算法:RSA、DSA、ECC 单向散列函数的加密算法:MD5、SHA 【Java面试题与答案】整理推荐 基础与语法 集合 网络编程 并发编程 Web 安全 ...
    • 常用的对称加密算法:DES、AES、3DES、RC2、RC4
    • 常用的非对称加密算法:RSA、DSA、ECC
    • 单向散列函数的加密算法:MD5、SHA

     


    【Java面试题与答案】整理推荐

     

    展开全文
  • 对称加密有哪些 RSA:RSA算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但那时想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥,可用于加密,也能用于签名。 DSA:数字签名...

    非对称加密有哪些

    RSA:RSA算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但那时想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥,可用于加密,也能用于签名。
    DSA:数字签名算法,仅能用于签名,不能用于加解密。
    DSS:数字签名标准,技能用于签名,也可以用于加解密。
    ELGamal:利用离散对数的原理对数据进行加解密或数据签名,其速度是最慢的。

    展开全文
  • 对称加密算法

    千次阅读 2016-02-25 16:05:09
    哪些是对称加密算法()A、AES B、DESC、DSAD、RSAE、3DESF、TDEAG、BlowfishH、RC5I、IDEAJ、ECC 解析:对称加密算法有AES、DES、3DES、TDEA、Blowfish、RC5、IDEA 非对称加密算法有DSA、ECC、RSA
  • 常用的加密算法有哪些

    千次阅读 2016-12-08 14:47:57
    常见的对称加密算法有DES、3DES、和AES等; 对称加密 指加密和解密使用相同密钥的加密算法。对称加密算法的优点在于加解密的高速度和使用长密钥时的难破解性。假设两个用户需要使用对称加密方法加密然后交换...
  • 根据加解密的密钥是否相同,加密算法可以分为对称加密、非对称加密对称加密与非对称加密的结合三种形式。而在区块链技术中所使用的加密算法最常见的当属哈希算法和非对称加密两种。哈希算法哈希算法(Secure Hash ...
  • 在上一篇文章【算法大杂烩】常见算法的归类和总结——对称加密算法 中我们简要介绍了常见的对称加密算法的相关知识。这次我们趁热打铁,介绍【非对称加密... 非对称加密算法的应用场景有哪些? 非对称加密算法  ...
  • 加密技术是对信息进行编码和解码的技术,编码是把原来可读信息(又称明文)译成代码形式(又称密文),其逆过程就是解码,加密技术的要点是加密算法加密算法可以分为三类: 对称加密,加密与解密 密钥相同,如 ...
  • 常见的不可逆加密算法有MD5,HMAC,SHA1、SHA-224、SHA-256、SHA-384,和SHA-512,其中SHA-224、SHA-256、SHA-384,和SHA-512我们可以统称为SHA2加密算法,SHA加密算法的安全性要比MD5更高,而SHA2加密算法比SHA1的...
  • 常见的不可逆加密算法有MD5,HMAC,SHA1、SHA-224、SHA-256、SHA-384,和SHA-512,其中SHA-224、SHA-256、SHA-384,和SHA-512我们可以统称为SHA2加密算法,SHA加密算法的安全性要比MD5更高,而SHA2加密算法比SHA1的...
  • 常见的加密算法可以分成三类,对称加密算法,非对称加密算法和Hash算法。 对称加密 指加密和解密使用相同密钥的加密算法。对称加密算法的优点在于加解密的高速度和使用长密钥时的难破解性。假设两个用户需要...
  • 分享给大家供大家参考,具体如下:对称加密算法在加密和解密时使用的是同一个秘钥;而非对称加密算法需要两个密钥来进行加密和解密,这两个秘钥是公开密钥(public key,简称公钥)和私有密钥(private key,简称私钥)...
  • 对称加密算法中,数据发信方将明文(原始数据)和加密密钥一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。收信方收到密文后,若想解读原文,则需要使用加密用过的密钥及相同算法的逆算法对密文进行...
  • 1.3、常见的对称加密算法有哪些?2、非对称加密2.1、什么是非对称加密?2.2、非对称加密的优缺点是什么?2.3、常见的非对称加密有哪些?2.4、对称加密和非对称加密的异同3、单向加密3.1、什么是单向加密?3.2、单向...
  • 加密,解密的话,分为,对称加密,和非对称加密。 像 des,aes 就是对称加密 非对称 RSA,DSA,等。 对称和非对称是指,加密和解密的时候,是不是需要同一个秘钥。非对称加密,使用私钥和公钥两种秘钥。 支付宝...
  • 1、DES对称加密算法 DES(数据加密标准)于1976年推出,是最古老的对称加密方法之一。它是由IBM开发的,用于保护敏感的,未分类的电子政府数据,并于1977年被正式采用,以供联邦机构使用。DES使用56位加密密钥,它...
  • 前文说明TDE的时候,使用了AES_256,SQL Server对称秘钥加密算法还有有哪些?哪些算法可用,有哪些...在加密算法方面,对称加密算法要比非对称加密算法快得多。因此,它们是在SQL Server中加密数据的最佳选择。 SQL
  • 引用:数字中国 加密算法: ... 对称加密算法对称加密算法是应用较早的加密算法,技术成熟。在对称加密算法中,数据发信方将明文(原始数据)和加密密钥一起经过特殊加密算法处理后,使其变成复...
  • 网上说它用了加密算法,那咱们就一起了解一下,加密算法里都有哪些东西。 对称加密 啥叫对称加密呢? 其实很好理解。这是最开始被使用的一种加密算法。假设A和B要一起传递一些消息。但是总有一些人会偷偷监听他俩的...
  • 加密算法简介

    2018-12-13 17:20:36
    加密算法有哪些类别? 1.对称加密算法 如:DES,3DES,DESX,Blowfish,IDEA,RC4,RC5,RC6,AES 2.非对称加密算法 如:RSA,ECC,Diffie-hellman,EI Gamal,DSA 3.Hash算法 如:MD2,MD4,MD5,H...
  • ssl 加密算法

    2019-09-02 13:02:43
    加密算法有哪些 对称加密:RC4、DES、AES 非对称加密:RSA、DSA HASH...
  • 文章前导在日常的开发过程中,主要使用的加密算法有摘要算法、对称加密算法和非对称加密算法。融合自己的理解和一些简单的示例,记录下来,便于日常查看。后期也会不断的更新该文章,由于平台问题,只...
  • 接着Base64编码讲,既然Base64不能用来加密,那么,有哪些可用的加密算法呢?按照加密和解密的密钥是否相同,可分为对称加密,非对称加密,散列算法等。对称加密:又称为 共享密钥加密算法。在 对称加密算法 中,...

空空如也

空空如也

1 2 3 4 5 ... 7
收藏数 127
精华内容 50
关键字:

对称加密算法有哪些