加密:使用初始化向量还是密钥?

2023-12-23

我正在使用 PHPmcrypt图书馆和AES-256(rijndael) 算法,需要密钥 + 初始化向量才能运行。

我的逻辑头脑并不真正同意这一点。难道只有一把钥匙就够了吗?

理论场景:
如果我将加密的敏感数据存储在数据库中,只有所有者才能解密,那么使用用户散列密码作为其数据的密钥或初始化向量是否合适?

密钥是否应该被认为比初始化向量更私密,还是相反?


不,事实上 IV 在大多数实现中都至关重要。 IV 也被认为对于公众使用是安全的,例如,对于 WEP 和 WPA1/WPA2,IV 以纯文本形式传输。当使用相同的密钥+iv 来加密相同的纯文本时,就会出现问题。除非您使用 IV,否则密文将是相同的。如果攻击者可以用这个密钥加密任意明文,然后查看密文。这是暴力破解攻击者获得的其他密文的一种更快的方法。

不仅如此,IV 必须是随机的,否则就会违反CWE-329 http://cwe.mitre.org/data/definitions/329.html。这个问题的原因有点微妙,一开始我没明白 https://stackoverflow.com/questions/3008139/why-is-using-a-non-random-iv-with-cbc-mode-a-vulnerability。你没有提到这一点,但我希望你正在使用CBC 或 CMAC 模式 http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Electronic_codebook_(ECB)

对密码使用哈希函数与使用 String2Key 函数几乎相同。只要攻击者无法使用 SQL 注入来获取密钥,这就是一个可靠的设计。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

加密:使用初始化向量还是密钥? 的相关文章

  • 无法访问 WordPress 中声明的全局变量

    我有以下代码 g value something print g value function get value global g value print g value print get value 当我在独立的 PHP 脚本中运行它
  • 通过 IP 地址限制 Laravel 错误日志

    When debug被设定为true在 Laravel 的app config php有什么方法可以限制结果Whoops包含对某些 IP 地址的堆栈跟踪的错误页面 并且不在该列表中的 IP 显示特定视图 Thanks 没有内置 但是你可能可
  • Yii2:无法将列值更新+1

    创建新记录时 我需要将列值更新 1 public function actionCreate model new CreateBookings if model gt load Yii app gt request gt post Yii
  • .htaccess 主要用于 localhost

    我在本地主机上使用 wamp server 虚拟主机名为www xyz com我有一个通过 git 设置的部署服务 它将代码部署到服务器上www xyz in 这是我的 htaccess 代码 RewriteEngine on Rewrit
  • 如何对 PHP 数组中的值进行排序/过滤?

    我需要 foreach 这个数组的值 My CODE 该代码的结果 Array 0 gt Array 0 gt Age Name 1 gt 22 Yrs Value 2 gt Ethnicity Name 3 gt Caucasian Va
  • PHP 如何查找自日期时间以来经过的时间? [复制]

    这个问题在这里已经有答案了 如何查找自日期时间戳记以来经过的时间2010 04 28 17 25 43 最终输出文本应该是这样的xx Minutes Ago xx Days Ago 大多数答案似乎都集中在将日期从字符串转换为时间 您似乎主要
  • 为什么需要将nginx中的$args重定向到index.php?

    许多 PHP 框架建议将其添加到 nginx location try files uri index php is args args 执行index php在所有 HTTP 请求上 为什么我需要 is args args 我觉得 arg
  • 如何使用 PHP 从 MSSQL 读取图像字段

    我正在创建一个网站 需要同步从离线 MSSQL 服务器读取的在线 MySQL 数据库 除图像字段外 所有通信和从 MSSQL 读取所有字段均工作正常 我已经使用 PHP 和 Mysql 一段时间了 知道如何向 MySQL 数据库插入 检索图
  • PHP:str_replace() - 忽略空格

    我有一个类似的字符串 我想将其替换为 问题是我不知道之间是否会有空格 和 可能有空白 也可能没有空白 可能有制表符或可能有换行符 我该如何更换
  • 将 Google 转换代码添加到 WordPress 联系表单 7

    我找到了一个将 Google Conversion 代码添加到 WordPress Contact Form 7 插件的教程 可以找到here http contactform7 com tracking form submissions
  • $_POST 返回空

    尝试练习一下 ajax 和 PHP 我不明白为什么每当我发送一些东西时 它都会返回空或未定义的索引 PHP 返回空 JS form submit function var meth this attr action var msg msg
  • 限制 Django 中的暴力登录攻击 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 是否有普遍接受的策略来保护 Django 应用程序免受此类攻击 有很多可用的库 例如Django 斧头 Django 防御者 Djan
  • openssl_decrypt 标签值

    我在网站中使用 openssl encrypt decrypt 方法 但在使用 tag 选项时遇到了一些问题 openssl encrypt data method key options iv tag openssl decrypt da
  • 初始向量(IV)的CTR模式使用

    据我所知 CTR 模式不使用初始向量 它只需要一个计数器 用给定的密钥对其进行加密 然后将结果与明文进行异或以获得密文 其他分组密码模式 例如 CBC 在进行加密之前 会使用初始向量对明文进行异或 所以这是我的问题 我在 Java 中有以下
  • Mysqli get_result替代方案

    我刚刚将所有 sql 查询更改为使用 mysqli 准备好的语句 为了加快这个过程 我创建了一个函数 称为performQuery 取代mysql query 它需要传入查询 绑定 如 sdss 和变量 然后执行所有准备好的语句 这意味着更
  • 从 XML 获取 viewCount [重复]

    这个问题在这里已经有答案了 我目前正在使用YouTube API https developers google com youtube 来自 Google 我正在尝试获取 viewCount 数组 我已经尝试过这个 但一点运气都没有 He
  • 在数据转换之前应用验证

    我想将从提交的用户数据中获得的文本字段转换为 Symfony2 中的对象 我使用 DataTransformer 来做到这一点 当我使用 NotEmpty 或 NotNull 等内置验证器或任何以标准方式内置的自定义验证器时 Symfony
  • 解密 TLS 1.2 AES-GCM 数据包

    我正在开发一个 Java 程序来解密TLS 1 2正在使用的会话TLS RSA WITH AES 128 GCM SHA256密码 我使用wireshark 录制了一个测试会话 这大师秘密是已知的 No Time Protocol Leng
  • Mysql为简单频繁查询创建排序索引性能

    我正在处理一个包含大约 400 万条消息条目的 mysql 表 并尝试根据时间戳选择最新的 50 条消息 另一个要求是返回的消息不以固定前缀开头 问题是单个查询大约占用 25 的 cpu 并且最多需要 1 5 秒 该查询经常由多个客户端执行
  • 正则表达式提取大括号之间的文本

    我正在尝试提取 PHP 中花括号之间的文本 例如 欢迎 user first name 使用 site 版本 1 5 您的用户名 是 user username 您目前的声誉是 user reputation name 我用过 在某些情况下

随机推荐

  • 如何在 PHP 中检查域名服务器?

    我需要检查域名服务器正在使用什么 但在 PHP 中找不到正确的解决方案 我努力了checkdnsrr and dns get record 对于某些正在运行的域 它们都不会显示 NS Whois也不是解决办法 我的目的是过滤已设置名称服务器
  • 当您使用 C++ 中的 asm 代码操作寄存器时,会发生什么情况?

    一些代码 int x 1 for int i 1 i lt 10 i x i asm mov eax x 如果这个程序使用eax为了增加价值i 当我操纵时会发生什么eax 编译器会保存之前的寄存器吗 asm在执行 asm 代码后调用并使用它
  • 如何将 SQL 作为带有参数的文件传递给 Airflow Operator

    我在 Airflow 中有一个操作员 import orders op MySqlToGoogleCloudStorageOperator task id import orders mysql conn id con1 google cl
  • Firebase,以“孩子存在”为条件进行查询?

    我有一个这样的数据库 附照片 行程有BIDS and awardedBid I use awardedBid null作为确定该行程是否仍可竞标的一种方式 但是 我不知道如何查询该条件 所以我必须通过创建另一个字段来进行破解bidDone所
  • 插入具有唯一列的 sqlite 表

    我将值插入到我的表中 来自 python 代码 如下所示 cur execute insert into t a b c values a b c 有一个unique constraint在 c 列上 常见的方式是什么insert如果我想涵
  • 是否有通用的 CIL 代码可以将任何类型实例转换为字符串?

    是否可以编写通用 CIL 指令来将任何类型 值和引用 的实例转换为 System String 我特别对 Mono Cecil 代码感兴趣 它将这些指令注入到方法中 分析通用方法时 我提出了这些 Mono Cecil 调用 它应该将第 i
  • ARP 超时。为什么要固定周期?

    这个问题多年来一直困扰着我 基本问题 ARP有什么原因吗has要在 ARP 缓存条目上实现固定超时吗 我在实时圈子里做了很多工作 如今 我们的大部分系统间通信都是通过专用 UDP IP 链路进行的 这在很大程度上可以实时可靠地工作 但有一点
  • WebRTC 带宽要求

    有谁知道 WebRTC 带宽最低要求是多少 我感兴趣的是有或没有视频以及不同视频分辨率的值是什么 我对两方会议特别感兴趣 但如果您了解各方的价值观 那也很好 如果你有实际的指标就很好 但如果你知道我如何从理论上计算这也很好 另外 不同的浏览
  • 是否可以在 chrome 调试器中操纵返回值?

    Google 的 Chrome 浏览器有一个很好的功能 可以在退出函数之前显示调试器中的返回值 它显示在Scope在调试器窗格之一中列出Watch Call Stack etc 我很好奇是否可以通过控制台访问此变量 我在调试时经常需要做这样
  • 在iOS6上运行时UIButton背景颜色变成白色

    我想知道为什么我的 iPhone 应用程序的按钮在 iOS 6 设备上运行时无法正确显示 我已在界面生成器中将按钮的背景颜色设置为蓝色 然而 当在 iOS 6 上运行时 按钮背景变成白色 这是在 iOS7 上运行时按钮的样子 这就是在 iO
  • cURL 在链中使用多个代理

    是否可以使用 cURL 在单个请求中链接多个代理 例如 启动 cURL gt proxy1 gt proxy2 gt 目标地址 使用 cURL 可以实现这一点吗 根据定义 代理是中间人 在客户端和服务器之间运行和工作的软件 客户端询问代理
  • 执行子请求时出错

    在我的 MVC3 应用程序中 当我尝试处理超出最大请求的错误时 我收到上述错误 我正在应用程序级别处理异常 我试图重定向到位于视图的共享文件夹中的错误页面 如果请求大小超出限制 我将使用下面的代码重定向到错误页面 this Server C
  • jQueryUI 多个可放置元素

    怎么当我拖着我的draggable div to droppable1div 它总是被放置在droppable2 div 另外 我遵循了 jQuery UI snap back 选项 但它不起作用 我怎样才能做到这一点而不是拖拉实际的dra
  • 如何在 LINQ 中对单个联接中的多个字段进行联接

    我需要执行一个 LINQ2DataSet 查询 该查询对多个字段进行联接 如 var result from x in entity join y in entity2 on x field1 y field1 and x field2 y
  • 精确单词搜索中允许出现一个字母错误

    我们正在实施一个搜索应用程序 我们通过以下 sql 查询实现了精确单词搜索 SELECT FROM jreviews content WHERE jr produits REGEXP lt ryan gt 现在效果很好 我们在某些字段中还有
  • 在 perl 中解码 UTF-8 JSON 的问题

    UTF 8字符在使用JSON库处理时会被破坏 也许这类似于在perl中解码unicode JSON的问题 https stackoverflow com questions 5536796 problem with decoding uni
  • 如何在 WordPress 上跨主机名并行下载?

    在 GTmetrix 上检查我的 WordPress 网站时 我收到此消息 跨主机名并行下载 gt https gtmetrix com https gtmetrix com 这是详细信息 gt https gtmetrix com par
  • Lookup Class 在 LINQ 中,底层数据结构是什么?

    LINQ 中 Lookup 类的底层数据结构是什么 它是哈希表吗 它是一个哈希表 其中每个存储桶都包含一个链表 并且每个项目都是所有项目的链表的一部分 换句话说 哈希表中的每一项都包含一个key 的列表elements 指向哈希桶中下一项的
  • VS2012 的数据源工具箱不显示我的实体模型

    从数据源工具箱本身添加实体模型或通过添加它 gt 添加 gt 新项目 后 它不会显示在数据源工具箱中 因此我无法获得那么简单的拖放功能 如果我添加一个数据集 它可以工作 但这是一种较旧的技术 不是吗 我当前项目中的所有内容都是实体模型并更改
  • 加密:使用初始化向量还是密钥?

    我正在使用 PHPmcrypt图书馆和AES 256 rijndael 算法 需要密钥 初始化向量才能运行 我的逻辑头脑并不真正同意这一点 难道只有一把钥匙就够了吗 理论场景 如果我将加密的敏感数据存储在数据库中 只有所有者才能解密 那么使