Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用boot集成COS的时候使用非对称加密上传文件然后再下载报解密错误?

使用boot集成COS的时候使用非对称加密上传文件然后再下载报解密错误?

提问于 2018-10-30 11:11:32
回答 1关注 0查看 614

com.qcloud.cos.exception.CosClientException: Unable to decrypt symmetric key from object metadata

at com.qcloud.cos.internal.crypto.ContentCryptoMaterial.cek(ContentCryptoMaterial.java:205)

at com.qcloud.cos.internal.crypto.ContentCryptoMaterial.fromObjectMetadata0(ContentCryptoMaterial.java:313)

at com.qcloud.cos.internal.crypto.ContentCryptoMaterial.fromObjectMetadata(ContentCryptoMaterial.java:247)

at com.qcloud.cos.internal.crypto.COSCryptoModuleAE.decipherWithMetadata(COSCryptoModuleAE.java:183)

at com.qcloud.cos.internal.crypto.COSCryptoModuleAE.decipher(COSCryptoModuleAE.java:97)

at com.qcloud.cos.internal.crypto.COSCryptoModuleAE.getObjectSecurely(COSCryptoModuleAE.java:78)

at com.qcloud.cos.internal.crypto.COSCryptoModuleAE.getObjectSecurely(COSCryptoModuleAE.java:253)

at com.qcloud.cos.internal.crypto.CryptoModuleDispatcher.getObjectSecurely(CryptoModuleDispatcher.java:72)

at com.qcloud.cos.COSEncryptionClient.getObject(COSEncryptionClient.java:79)

at com.dudo.seckill.cos.util.AsymmetricKeyEncryptionClientService.downLoadFile(AsymmetricKeyEncryptionClientService.java:165)

at com.imooc.test.AsymmetricKeyEncryptionClientServiceTest.testdownLoadFile(AsymmetricKeyEncryptionClientServiceTest.java:49)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)

at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)

at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)

at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)

at org.springframework.test.context.junit4.statements.RunBeforeTestExecutionCallbacks.evaluate(RunBeforeTestExecutionCallbacks.java:73)

at org.springframework.test.context.junit4.statements.RunAfterTestExecutionCallbacks.evaluate(RunAfterTestExecutionCallbacks.java:83)

at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:75)

at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:86)

at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:84)

at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)

at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:251)

at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:97)

at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)

at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)

at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)

at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)

at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)

at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)

at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)

at org.junit.runners.ParentRunner.run(ParentRunner.java:363)

at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:190)

at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)

at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)

at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)

at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:678)

at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)

at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)

Caused by: java.security.InvalidKeyException: Unwrapping failed

at com.sun.crypto.provider.RSACipher.engineUnwrap(RSACipher.java:445)

at javax.crypto.Cipher.unwrap(Cipher.java:2549)

at com.qcloud.cos.internal.crypto.ContentCryptoMaterial.cek(ContentCryptoMaterial.java:191)

... 41 more

Caused by: javax.crypto.BadPaddingException: Decryption erro

at sun.security.rsa.RSAPadding.unpadOAEP(RSAPadding.java:502)

at sun.security.rsa.RSAPadding.unpad(RSAPadding.java:296)

at com.sun.crypto.provider.RSACipher.doFinal(RSACipher.java:363)

at com.sun.crypto.provider.RSACipher.engineUnwrap(RSACipher.java:440)

... 43 more

回答 1

LemonLu

发布于 2018-10-31 09:00:31

非对称加密上传的对象建议带上密钥特征值作为对象元数据,下载的时候会取这个数据来对比本地的内容,才能找到对应的公钥做解密。

和开发者交流更多问题细节吧,去 写回答
相关文章
使用hutool的非对称加密工具进行加密解密
RSA是最流行的非对称加密算法之一。也被称为公钥加密。它是由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)在1977年一起提出的。当时他们三人都在麻省理工学院工作。RSA就是他们三人姓氏开头字母拼在一起组成的。
JQ实验室
2023/01/13
4.9K0
【C 语言】文件操作 ( 文件加密解密 | 加密解密原理 | 对称加密 | 非对称加密 | 散列函数 )
通过 散列 / 哈希 算法 , 将数据经过运算 , 得到固定长度的 指纹 数据 , 不同的数据得到的指纹数据不同 ;
韩曙亮
2023/03/30
5.4K0
使用Spring Boot、Multipartfile上传文件路径错误问题
java.io.IOException: java.io.FileNotFoundException: /tmp/tomcat/…/tmp/files/xxx.jpg (No such file or directory) 问题源码: transferTo方法报错
日薪月亿
2019/05/14
11.9K0
Java 中使用 Jersey 实现上传文件(附加密和解密)
Jersey 是开源的 RESTful 框架,实现了 JAX-RS 规范,提供了更多的特性和工具, 可以进一步地简化 RESTful service 和 client 开发,与 Struts 类似,它同样可以和 Hibernate、Spring 框架整合。此处使用它实现文件上传功能。
全栈程序员站长
2022/07/18
1.2K0
[Centos7]使用GPG加密和解密文件
简介 GNU Privacy Guard(GnuPG或GPG)是一种加密软件,它是PGP加密软件的满足GPL的替代物。GnuPG依照由IETF订定的OpenPGP技术标准设计。GnuPG用于加密、数字签名及产生非对称钥匙对的软件。 2.GPG公钥生成 输入“gpg —gen-key”开始生成
贰叁壹小窝
2020/07/22
4.3K0
使用 OpenSSL 加密和解密文件
加密是对消息进行编码的一种方法,这样可以保护消息的内容免遭他人窥视。一般有两种类型:
用户1880875
2021/09/06
3.8K0
JAVA使用几种非对称加密
DH: package com.fengyunhe.asymmetric; import com.sun.org.apache.xerces.internal.impl.dv.util.HexBin; import javax.crypto.*; import javax.crypto.interfaces.DHPublicKey; import javax.crypto.spec.DHParameterSpec; import java.security.*; import java.security
前Thoughtworks-杨焱
2021/12/08
4570
Spring Boot(十七):使用 Spring Boot 上传文件
上传文件是互联网中常常应用的场景之一,最典型的情况就是上传头像等,今天就带着带着大家做一个 Spring Boot 上传文件的小案例。
纯洁的微笑
2019/09/25
1.1K0
Spring Boot(十七):使用 Spring Boot 上传文件
再谈加密-RSA非对称加密的理解和使用
枕边书
2018/01/04
2.7K0
Java加密与解密之非对称加密算法
非对称加密算法与对称加密算法的主要差别在于非对称加密算法用于加密和解密的密钥不相同,非对称加密算法密钥分为公钥和私钥,公钥加密只能用私钥解密,反之私钥加密只能用公钥解密。相比对称加密算法,非对称加密算法加/解密效率低,但安全性高,这两种算法一般结合使用。常见非对称加密算法有RSA、ECC、Elgamal等。
布禾
2020/11/24
1.2K0
springboot(十七):使用Spring Boot上传文件
上传文件是互联网中常常应用的场景之一,最典型的情况就是上传头像等,今天就带着带着大家做一个Spring Boot上传文件的小案例。 1、pom包配置 我们使用Spring Boot最新版本1.5.9、jdk使用1.8、tomcat8.0。 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.9.RELE
纯洁的微笑
2018/04/18
1.8K0
springboot(十七):使用Spring Boot上传文件
[Linux] 使用openssl实现RSA非对称加密
参数:genrsa 生成密钥 -out 输出到文件 rsa_private_key.pem 文件名 1024 长度
唯一Chat
2019/09/11
3.6K0
Linux下使用Vim/Vi给文件加密和解密
本文介绍在Linux下使用Vim/Vi给文件加密和解密的简单方法,Vim的文件加密功能不是很强,但比较实用,因为不必要借助其他软件即可实现。
知忆
2021/06/23
2.2K0
使用cvm从内网拉取cos文件下载
之前用阿里OSS时候有看到有人用同地域ECS走内网拉文件,现在用腾讯COS,想到是不是也可以走内网使用cvm下载文件呢
洛眰恦
2022/02/21
3.2K0
使用cvm从内网拉取cos文件下载
Java使用AES加密解密
AES加密机制: 密码学中的高级加密标准(Advanced Encryption Standard,AES),又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。 这个标准用来替代原先的DES(Data Encryption Standard),已经被多方分析且广为全世界所使用。经过五年的甄选流程,高级加密标准由美国国家标准与技术研究院 (NIST)于2001年11月26日发布于FIPS PUB 197,并在2002年5月26日成为有效的标准。2006年,高级加密标准已然成为对称密钥加密中
二十三年蝉
2018/08/01
5.1K0
PHP 使用非对称加密算法(RSA)
  以前一直对客户端传给服务器的信息加密这一块一脸懵,如果app里面的用户登录信息被抓包拿到了,大写着 username:root,password:123456,  那不是很尴尬。
Lansonli
2021/10/09
1.9K0
vue项目使用ueditor上传文件出现错误
Failed to parse multipart servlet request; nested exception is java.io.IOException: org.apache.tomcat.util.http.fileupload.FileUploadBase$IOFileUploadException: Processing of multipart/form-data request failed. Unexpected EOF read on the socket
全栈程序员站长
2021/04/07
1.1K0
如何使用Spring Boot和MinIO实现文件上传、读取、下载和删除的功能?
在现代Web应用程序开发中,文件的上传、读取、下载和删除是非常常见的功能。Spring Boot 是一个流行的Java框架,而MinIO则是一个高性能的对象存储服务。本文将详细介绍如何使用Spring Boot和MinIO实现文件上传、读取、下载和删除的功能。
网络技术联盟站
2023/07/03
5.3K0
如何使用Spring Boot和MinIO实现文件上传、读取、下载和删除的功能?
如何在 Linux 中使用 GPG 加密和解密文件?
GPG(GNU Privacy Guard)是一种免费的开源加密软件,用于保护计算机数据的机密性和完整性。
网络技术联盟站
2023/05/04
3.3K0
如何在 Linux 中使用 GPG 加密和解密文件?
使用Jsch进行安全的文件上传及下载
本文介绍在Java中如何使用基于SSH的文件传输协议(SFTP)将文件从本地上传到远程服务器,或者将文件在两个服务器之间安全的传输。我们先来了解一下这几个协议
字母哥博客
2020/10/23
3K0

相似问题

cos上传文件putObject 报SignatureDoesNotMatch?

0742

cos使用restful接口上传文件报ErrOffGoBack?

2380

cos资源下载报ssl证书错误咋回事?

0495

cos对象存储 getObject下载报AccessDenied?

2743

cos对象存储使用高级API上传文件时内网上传大批量文件的时候稍微大的文件报broken pipe?

31.4K
相关问答用户
腾讯计算机系统有限公司 | 高级工程师
擅长3个领域
腾讯云 | 高级技术咨询工程师擅长4个领域
腾讯云 | 高级工程师擅长2个领域
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档