当前位置: 首页 > 知识库问答 >
问题:

SpringCloudConfig在客户端解密期间是否使用带强RSA的AES密钥

杜河
2023-03-14

我配置了一个由本地Git回购支持的Spring Cloud配置服务器,并创建了一个Spring Boot应用程序来使用来自SCC的配置。Git中的配置文件scc-client.yml有两个纯文本属性和一个加密属性,app.secret

app:
  name: client-app
  port: 8085
  secret: '{cipher}AgCGh ... X3pTW'

解密是在客户端完成:bootstrap.properties在SCC服务器上有spring.cloud.config.server.encrypt.enabled=falsebootstrap.yml我的Spring Boot应用程序包含:

...
encrypt:
  keystore:
    location: classpath:keystore.p12
    password: kspass
    alias: client-key
    secret: kspass
  key: client-key
  rsa:
    strong: true
...

密钥库。p12包含用于加密应用程序的密钥。机密值。我使用keytool生成了密钥:

keytool -genkeypair -alias client-key -keyalg RSA -deststoretype pkcs12 -keystore src/main/resources/keystore.p12 -keysize 4096 -storepass kspass -keypass kspass


Spring在上面的设置中解密客户端的值时是否使用混合RSA加密方法?

根据代码判断,o.s.s.r.c.中调用了一些AES相关组件。这是一个加密器。decrypt()方法,但我不太确定这是否代表一种完全混合的加密方式,同时使用一个自生的AES密钥。

共有1个答案

高嘉熙
2023-03-14

SpringCloud确实采用了维基百科链接中描述的混合算法。服务器或命令行客户端对数据进行加密。服务器、命令行客户端或客户端应用程序可以对其进行解密。请注意,客户端解密通常是最脆弱的,因为您必须使用与百科全书相同的私钥对其进行配置。

 类似资料:
  • 但这总是给我以下的例外- 我的键盘生成逻辑- 我的加密逻辑- Base64 Util方法-

  • 这是我的密码 抱歉,如果我的代码一团糟。

  • 问题内容: 我正在编写一个用于传输文件的小型应用程序,或多或少地将其作为一种学习更多编程加密基础的方法。这个想法是生成一个RSA密钥对,交换公共密钥,并发送AES iv和密钥以进一步解密。我想用接收者的RSA公钥加密AES密钥,如下所示: 然后,我将密钥值写给接收器,并按如下方式解密: 在控制台的另一端,我将其作为输出: 此外,如果我创建一个大小为16的字节数组,并将cipher.doFinal(

  • 问题内容: 我想生成rsa密钥对(公共和私有),然后将它们用于AES加密和解密。例如,用于加密的公共密钥和用于解密的私有密钥。我为此编写了一个简单的代码,但是问题是当我运行时这段代码我得到这个错误: 我该如何解决这个问题?我的加密代码如下: 问题答案: 如评论中所建议,我搜索了“混合密码术”。这个例子解决了我的问题。

  • 我正在使用Safenet HSM(硬件安全模块)来存储我的加密密钥,并且我正在尝试使用JavaAPI和SunPKCS11解包使用RSA加密的密钥(AES/DES)。我想安全地执行此操作,以便无法从HSM中提取解包的AES/DES密钥(就像RSA私钥值是不可见的)。但是,在解包后,解包密钥的值在HSM之外的密钥对象中是可见的。 这是我的代码: 如何告诉代码不要泄露未包装的密钥?我必须在PKCS11配