首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >用密匙加密文件时,AES-256-CBC加密IV与salt

用密匙加密文件时,AES-256-CBC加密IV与salt
EN

Security用户
提问于 2016-09-02 06:35:02
回答 1查看 8.5K关注 0票数 0

我正在编写一个小类来添加到我的应用程序中,它将处理诸如配置秘密之类的事情。(我不想进入这个话题,因为很多研究已经深入到我们决定为此采取的方法上。)

其中一个要求是对文件机密进行加密。(假设是TLS证书密钥或PGP密钥。)我能够生成(并解密)一个秘密密钥,该密钥可用于使用AWS KMS服务对应用程序之外的文件进行加密/解密。(有关实际返回的信息,请参见此:https://docs.aws.amazon.com/cli/latest/reference/kms/generate-data-key.html)

所以,按照我的想法,这仅仅意味着我需要将加密的密钥与文件一起存储,这样我就可以解密密钥,使用它来解密文件时。

我的困惑来自于由于IV而对文件数据使用了openssl加密/解密函数。在过去的几天里,我阅读了很多关于IV的内容,并理解了它的一般用途,但我仍然有许多问题试图将它与我在“现实世界”中看到的东西调和起来。

当我从命令行使用openssl对文件进行加密时,我已经阅读了以下内容:

openssl aes-256-cbc -salt -in secrets.txt -out secrets.txt.enc

注意,没有传入IV,尽管-salt参数可能具有类似的用途?

但是,当我解密同一个文件时,我使用如下命令:

openssl aes-256-cbc -d -in secrets.txt.enc -out secrets.txt.new

注意没有-salt参数,没有IV,或者任何类似的东西,那么它如何能够在没有这些信息的情况下解密文件呢?

在PHP中的openssl加密/解密函数以及围绕IV的其他讨论中,似乎强烈建议在加密数据时使用IV,这意味着我在解密数据时也需要存储/使用IV,但这不是从命令行执行的,那么这是如何工作的呢?上面的命令行是否不太安全?我是否需要使用一个IV,因为每个文件都有自己的安全加密密钥?

EN

回答 1

Security用户

回答已采纳

发布于 2016-09-02 07:11:29

如本线程所述

OpenSSL开发人员倾向于从密码中派生IV,就像密钥一样(也就是说,他们从密码中产生一个长序列,他们将其分成两部分,一半是加密密钥,另一半是IV)。

不需要为解密提供IV,因为OpenSSL从密码中派生它。线程还提到了使用OpenSSL的文件加密方法的一些缺点,这是值得考虑的,比如没有MAC来验证加密文件的完整性。

票数 2
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/135708

复制
相关文章
git 取消跟踪
这样就可以了,如果后面跟的是目录就加上个 -r 就行了 (这个操作不会删除这个文件)
潇洒
2019/07/03
9490
git取消文件跟踪
在使用git的时候,有些文件是不需要上传的,所以就可以修改   .gitignore 
lin_zone
2018/08/15
1.3K0
git取消文件跟踪
git 取消文件跟踪
git rm --cached readme1.txt    删除readme1.txt的跟踪,并保留在本地。
西湖醋鱼
2020/12/30
1.5K0
git取消文件跟踪
在使用git的时候,有些文件是不需要上传的,所以就可以修改 .gitignore
全栈程序员站长
2022/07/07
1.5K0
git取消文件跟踪
git取消跟踪文件
取消跟踪文件: $git rm --cached FILENAME 取消跟踪目录: $git rm --cached FILENAME -r   最佳解决方案: 先清空,再加回来。 git rm -r --cached . #删除追踪状态 git add . git commit -m "fixed untracked files"
Ryan-Miao
2018/03/13
7540
git取消跟踪已版本控制的文件
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/119558.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/11
3280
Git 取消跟踪已版本控制的文件
Git 是一个很好的版本控制工具,当然驾驭起来相比 SVN 要稍微复杂一些。初入 Git,难免有一些问题。比如我们不小心将某个文件加入了版本控制,但是突然又不想继续跟踪控制这个文件了,怎么办呢?
技术小黑屋
2018/09/04
1.6K0
PHP打印跟踪调试信息
对于大部分编译型语言来说,比如 C 、 Java 、 C# ,我们都能很方便地进行断点调试,但是 PHP 则必须安装 XDebug 并且在编辑器中进行复杂的配置才能实现断点调试的能力。不过,如果只是简单的调试并且查看堆栈回溯的话,其实 PHP 已经为我们准备好了两个函数,能够让我们非常方便的看到程序运行时的调用情况。
硬核项目经理
2020/07/06
2K0
JQ + PHP + TrackMore物流信息跟踪
在使用之前,您需要先去trackmore官方网站申请API_KEY,传送门:TrackMore
Yiiven
2022/12/15
1.7K0
JQ + PHP + TrackMore物流信息跟踪
使用BTrace性能跟踪
BTrace是一个开源项目,开始于2007年,名声鹊起得益于2008年的JavaOne会议。
物流IT圈
2019/07/16
5820
使用BTrace性能跟踪
【目标跟踪】开源 | PolyTrack:使用边界多边形快速进行多目标跟踪和分割,替代包围框和遮罩跟踪
论文地址: http://arxiv.org/pdf/2111.01606v1.pdf
CNNer
2022/02/09
8720
【目标跟踪】开源 | PolyTrack:使用边界多边形快速进行多目标跟踪和分割,替代包围框和遮罩跟踪
度量,跟踪和日志记录
今天,我有幸参加了2017年的分布式追踪峰会,其中有很多来自AWS / X-Ray,OpenZipkin,OpenTracing,Instana,Datadog,Librato等公司的人员,我很遗憾我忘记了这一点。有一次讨论转向了项目范围和定义。跟踪系统是否也应该管理日志记录?什么确实的记录,通过在室内所代表的不同的镜头看?所有各种混凝土系统在哪里适合图片?
Java架构师必看
2021/07/13
7760
InnoDB克隆和页面跟踪
首先,我们将讨论支持InnoDB克隆技术的一些内部产品。MySQL企业版备份(MEB)是一种企业级产品,可为MySQL提供备份和恢复。在各种类型的备份中,我们关注下面两种类型:
MySQLSE
2021/01/08
1K0
跟踪综述推荐:目标跟踪40年
《中国图象图形学报》2019年第12期封面故事聚焦目标跟踪,对基于深度学习的目标跟踪算法进行系统的梳理。该成果是中国图象图形学学会机器视觉专委会牵头组织,浙江大学李玺教授、厦门大学王菡子教授等八位老师联名撰写的图像图形学科年度发展报告。
CV君
2020/02/12
2.3K0
跟踪算法(一)光流法跟踪
COPY FROM:http://blog.csdn.net/crzy_sparrow/article/details/7407604
全栈程序员站长
2022/09/15
1.2K0
Git 取消跟踪已版本控制的文件(亲测可行)
git 不再追踪文件改动 git update-index –assume-unchanged filePath
全栈程序员站长
2022/07/07
4150
事件相机特征跟踪-模板跟踪方法
由于事件相机不能提供完整的图像,所以最初的特征跟踪依赖传统相机的数据。本推送介绍事件相机特征检测与跟踪的一篇较早的工作:Feature Detection and Tracking with the Dynamic and Active-pixelVision Sensor (DAVIS),由ETH发表于2016年,衍生出了其它的方法,也被作为一类典型的特征追踪思路,即利用传统图形进行初始化与跟踪。
3D视觉工坊
2020/12/11
1K0
事件相机特征跟踪-模板跟踪方法
使用strace跟踪多进程程序
要跟踪的Taskdemo.php代码如下(即之前使用swoole实现的生产者消费者模型)。
跑马溜溜的球
2020/12/07
3K0
基于HTML5的Canvas指纹跟踪技术
时至今日有许多的方式来跟踪访客,例如使用存在用户端的cookie技术,这种技术现已被大部分公司遗弃,如今出现了一种新的方法替代cookie可以来跟踪用户。 在这两年中,许多网站和跟踪软件都开始利用HTML5 canvas指纹。PS:Canvas是HTML5中动态绘图的标签。 每个浏览器生成不一样的图案 从根本上来说,每一种浏览器都会使用不同的图像处理引擎,不同的导出选项,不同的压缩等级,所以每一台电脑绘制出的图形都会有些许不同,这些图案可以被用来给用户设备分配特定编号(指纹),也就是说可以用来识别不同用户。
FB客服
2018/02/02
1.9K2
sqlserver使用存储过程跟踪SQL
USE [master] GO /****** Object: StoredProcedure [dbo].[sp_perfworkload_trace_start] Script Date: 2017/7/6 19:48:52 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO
易墨
2018/09/14
1.7K0

相似问题

如何裁剪图像并使其具有响应性?

10

如何使其具有响应性?

118

如何更改标题的宽度并使其也具有响应性

219

如何在MUI中居中组件并使其具有响应性?

8113

我是否可以使用Bootstrap列来创建此分区,并使其具有响应性?

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文