问题标签 [initialization-vector]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
258 浏览

cryptography - 初始化向量在未来会变大吗?

我目前正在使用 AES (256) 和 CBC 模式来加密数据。我将初始化向量与加密数据一起存储。现在我只是将 IV 添加到加密数据的开头,然后在解密时将其作为硬编码的字节长度读入。

如果以后初始化向量长度发生变化,这个方法就会失效。

所以我的问题是:

将来更长的 AES 密钥大小 = 更长的 IV 吗?或者,换句话说,未来 AES 的块大小会发生变化吗?

如果是这样,处理这个问题的最佳方法是什么?使用第一个字节作为 IV 有多长的指示符,然后读入那么多字节?

0 投票
6 回答
63518 浏览

java - 需要解决 AES 中错误 IV 长度的方法

我正在尝试在 Java 中实现 AES,这是我使用的代码:

我需要这个固定密钥和 IV 用于测试目的,但我得到以下异常:

如何将此固定 IV 与此 AES 实现一起使用?有什么办法吗?

0 投票
2 回答
3330 浏览

cocoa - 生成随机字节可可?

我需要生成一些随机数据以附加到我的文件中进行加密。我该怎么做呢?它与生成一串随机字符的想法是一样的吗?

就像是:

然后使用 rand() 函数来随机化数据?

非常感谢您的帮助

0 投票
1 回答
174 浏览

cocoa - 任何包含盐和 IV AES 加密的好的可可库?

我只是在完善我的加密工具,但我注意到我缺少盐,这是为了使加密更安全而重要的。我正在使用一些内置的可可方法,但它们也不包括在内。我不想从头开始写这个,因为它很难做到正确。是否有任何好的可可库,其中包括用于 AES 加密的盐和 IV?

谢谢您的帮助

0 投票
2 回答
458 浏览

php - 为什么 phpass 为相同的输入字符串返回不同的哈希值?

我习惯于让散列算法总是返回相同的散列。

为什么 phpass 库总是返回不同的哈希值?

跟IV有关系吗?(我从来没有完全理解这个概念)

0 投票
1 回答
1336 浏览

iphone - 使用 IV、Salt、RFC2898 迭代的 AES 加密,在 iPhone 中使用 SHA1 算法生成密钥

我有一个与 AES 加密有关的问题。问题是我需要使用带有初始化向量、Salt、RFC2898 迭代的 AES 加密技术对字符串进行加密,并使用 sha1 算法生成密钥。

我用了这段代码

对于 sha1 密钥生成,但它产生的效果与 .net 和 Android 中的这种技术完全不同。

Android 和 .net 已经有类和库可以做到这一点,我独自离开了,所以我如何在 iPhone 中做到这一点。

0 投票
1 回答
371 浏览

c# - 独特的初始化向量有什么好处?

我使用带有Rijndael类的 AES 加密来加密密码,然后将其存储在配置文件中。

我知道什么是初始化向量。我已经阅读了关于 SO 的主题(例如我应该使用初始化向量 (IV) 和我的加密吗?)和wikipedia上的文章。

但是,有一点我不明白:由于您需要在解密中使用的 IV 与在加密期间使用的 IV 相同,因此您被迫将 IV 与加密文本一起存储。那么为每个加密使用唯一的 IV 有什么好处呢?如果攻击者获得加密文本,他也将获得 IV。

0 投票
8 回答
88023 浏览

c# - 良好的 AES 初始化向量实践

根据我的问题Aes Encryption... missing a important piece,我现在了解到我对字符串创建可逆加密的假设有点偏离。我现在有

这会产生一致的结果;但是,如果不知道/设置初始化向量,我将无法解密。我真的不想将三个值传递给这个方法(对于 IV),这让我不得不对 IV 进行硬编码或从密钥中派生它。我想知道这是否是一个好的做法,或者它是否会使加密的值容易受到某种攻击……或者我真的想太多了,应该只对 IV 进行硬编码?

更新 根据 Iridium 的建议,我尝试了类似的方法:

但是,这在我的单元测试中显示了一些奇怪的东西:

我的解密文本显示为“92ʪ�F”�,hpv0�� 我正在加密。有很多喜欢它,但这是我的加密。”这似乎几乎是正确的,但当然完全错误。看起来我很接近了。我错过了内存流上的偏移量吗?

0 投票
2 回答
14717 浏览

cryptography - AES 加密如何传输 IV

我了解唯一 IV 在加密以防止诸如频率分析之类的攻击方面很重要。问题:对于 AES CBC 加密,IV 的重要性是什么?有一个非常明确的答案来解释 IV 的重要性。

以明文形式发送 IV 是否存在安全漏洞?或者是否需要使用用于发送对称密钥的相同公钥/私钥对其进行加密?

如果 IV 需要加密发送,那么为什么不每次都生成一个新的对称密钥并将 IV 视为密钥的一部分呢?生成对称密钥的成本是否太高?或者是为了尽量减少传输的数据量?


秘密与非秘密初始化向量的最佳答案状态:

典型的密钥建立协议将导致双方都参与计算一条数据,但只有他们都知道。使用 Diffie-Hellman(或其任何椭圆曲线变体),所述共享数据块具有固定长度,并且它们无法控制其值(它们只是获得相同的看似随机的位序列)。

两个实体如何在没有共享信息的情况下得出“相同的看似随机的比特序列”?共享信息是加密发送的假设吗?而且,如果共享信息是加密发送的,为什么不直接发送 IV 加密呢?


因为应用程序需要安全地传输对称密钥,所以将 IV 与密钥本身分开似乎本质上是一种优化。还是我错过了什么?

0 投票
1 回答
1215 浏览

java - 密码学上的初始化向量


我有一个关于初始化向量如何在密码学上工作的问题。

我对创建 IV 有一点了解,我的问题是,
我知道SecureRandom类,所以一旦我通过它创建 IV,它将完美地加密数据,我不明白的是如何获得相同的 IV对于解密过程?(请解释我需要知道这一点才能为分配创建算法)