我已经使用SpringCloudConfigServer设置了一个简单的项目,我试图简单地加密和解密一些值。我使用以下pom将该项目创建为Spring初学者项目。xml与springboot。
波姆。xml
<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.oreilly.cloud</groupId>
<artifactId>spring-microservices-config-server6</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>spring-microservices-config-server6</name>
<description>Demo project for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.2.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-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>Camden.SR2</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 Boot应用程序类以添加@EnableConfigServer
注释,如下所示:
@SpringBootApplication
@EnableConfigServer
public class SpringMicroservicesConfigServer6Application {
public static void main(String[] args) {
SpringApplication.run(SpringMicroservicesConfigServer6Application.class, args);
}
}
在我的申请范围内。属性文件,我指向git存储库,设置服务器端口,并使用encrypt启用对称密钥加密。按键
如下所示:
server.port=8888
spring.cloud.config.server.git.uri=C:/Users/training/Desktop/sts-workspace/configuration
encrypt.key=secret
接下来,我打开一个bash shell并加密一些数据:
$ curl http://localhost:8888/encrypt -d Kevin
它产生了以下值:
`315ca5592635e4f65e0a0278cd08f74b5cef27e8379bd0e0d81d08c9ed8fbac161d`
如果我尝试使用以下方法解密该值:
$ curl localhost:8888/decrypt --data-urlencode 315ca5592635e4f65e0a0278cd08f74cef27e8379bd0e0d81d08c9ed8fbac161d
我收到以下错误:
276description":"Text not encrypted with this key","status":"INVALID"}
我不明白为什么这个简单的场景几乎一开箱就失败了。手动需要的配置非常少,我想知道这是否是配置服务器的问题?有人能帮忙吗?
我刚刚发现发生了什么:
$ curl -X POST localhost:8888/encrypt -d FOO
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 67 100 64 100 3 4000 187 --:--:-- --:--:-- --:--:-- 4000e474cd78d6c18e0e5395e67a3bc0865a75077650e91d2249d460e91d6989ce87
我将4000e474cd78d6c18e5395e67a3bc0865a75077650e91d249d460e91d6989ce87
作为加密文本,但它不起作用。
问题是Current Speed列正好在响应之前,所以我们使用它就像它是响应的一部分一样。
实际的加密文本是,删除当前速度:e474cd78d6c18e0e5395e67a3bc0865a75077650e91d2249d460e91d6989ce87
$ curl localhost:8888/decrypt -d e474cd78d6c18e0e5395e67a3bc0865a75077650e91d2249d460e91d6989ce87
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 67 100 3 100 64 187 4000 --:--:-- --:--:-- --:--:-- 4000FOO
我正在尝试设置一个SpringCloudConfig服务器,该服务器使用ssh私钥的自定义位置。我需要为密钥指定自定义位置的原因是,运行应用程序的用户没有主目录。。所以我没有办法使用默认的我的密钥的目录。我知道可以选择创建一个只读帐户,并在配置中提供用户/密码,但ssh方式更干净 有什么方法可以设置这个吗?
我试图从配置服务器加载解密的配置属性,但失败了,出现以下错误: 2018-08-07 09:58:26.534 WARN 20400-[nio-8888-exec-3]o . s . c . c . s . e . cipher environment encryptor:无法解密密钥:密码(类Java . lang . illegalstateexception:无法从存储加载密钥:类路径资源[
主要内容:1.对称加密,2.非对称加密,3.混合加密,4.常见的摘要算法1.对称加密 AES,密钥长度有128/256/192。高级加密标准,是下一代的加密算法标准,速度快,安全级别高; DES:密钥为56, 数据加密标准,速度较快,适用于加密大量数据的场合。 3DES: 密钥为168.是基于DES,对一块数据用三个不同的密钥进行三次加密,强度更高。 IDES: 密钥为128 SM1: 密钥为128 SM4: 密钥为128 RC4, RC5, RC6 DESX 两边用
MAC( M essage A uessntication C ode)算法是一种对称密钥加密技术,用于提供消息认证。 为了建立MAC过程,发送方和接收方共享对称密钥K. 实质上,MAC是在基础消息上生成的加密校验和,它与消息一起发送以确保消息验证。 使用MAC进行身份验证的过程如下图所示 - 在Java中, javax.crypto包的Mac类提供了消息认证代码的功能。 按照以下步骤使用此类创建
本文向大家介绍Android对称加密与非对称加密,包括了Android对称加密与非对称加密的使用技巧和注意事项,需要的朋友参考一下 凯撒密码 1. 介绍 凯撒密码作为一种最为古老的对称加密体制,在古罗马的时候都已经很流行,他的基本思想是:通过把字母移动一定的位数来实现加密和解密。明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。例如,当偏移量是3 的时候,所有的字母
本文向大家介绍C#对称加密与非对称加密实例,包括了C#对称加密与非对称加密实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#对称加密与非对称加密的原理与实现方法,分享给大家供大家参考。具体分析如下: 一、对称加密(Symmetric Cryptography) 对称加密是最快速、最简单的一种加密方式,加密(encryption)与解密(decryption)用的是同样的密钥(secr