问题标签 [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 投票
1 回答
1951 浏览

encryption - 存储初始化向量 - 单独的字段?

当使用 .NETAesCryptoServiceProvider库加密敏感信息时,我为每个加密的值生成一个唯一的初始化向量 (IV)。在我保存加密数据的数据库记录中,我有一个名为“IV”的字段,它存储初始化向量以供以后解密使用。

初始化向量是否可以与密文一起存储?也许通过将 IV 附加到密文?如果是这样,是否有标准方法?

0 投票
1 回答
704 浏览

java - CBC 模式下的 AES 加密,带有内联 IV

我想实现这段代码,即在 CBC 模式下使用内联 IV 进行 AES 加密,但是有这个错误消息:

IV 长度错误:必须为 16 字节长

代码是:

我该如何解决?顺便说一句,我试过:

为 16 字节,但不起作用

0 投票
3 回答
13219 浏览

encryption - 为什么随机 IV 对 AES-CBC 很好,但对 AES-GCM 没有

我一直在使用 AES-CBC 进行加密,每次加密纯文本时都会使用随机 IV。据我所知,这是推荐的方法。

我一直在研究 AES-GCM / AES-CTR,主要用于 AEAD。我还没有用这个实现任何东西,但是从我读过的所有内容来看,基本上nonce只是一个短路的IV,并且有一个用于每个加密调用的内部计数器。开发人员 / 需要确保在 32 位计数器循环返回之前更改随机数,否则相同的随机数 (IV) 可能与相同的密钥一起使用,这可能会加密相同的纯文本并泄漏加密密钥。

我不太明白为什么 AES-CBC 可以使用随机 IV,但我读过的一些内容表明 AES-GCM 的随机随机数 (IV) 是一个坏主意。我唯一能想到的是 AES-CBC 的 IV 比 AES-GCM 的 nonce 长,因此 AES-GCM 的重复 nonce 可能更大。

我需要加密从几个字节到 10 - 20 GB 的数据。我知道 AES-GCM 在计数器循环之前可以加密的数据大小(~60GB)有限制。我可以绕过这个限制,因为我的数据低于这个限制。

有人可以解释为什么不建议为 AES-GCM 使用随机随机数吗?

0 投票
2 回答
2161 浏览

java - 如何解码 AES-256 / CBC / ZeroBytePadding 加密对象

我是 Java Cryptography 的新手。我提供了以下 PHP 代码来解密 AES-256 / CBC / ZeroBytePadding 加密对象。

我需要在java中做同样的事情。经过大量搜索,我编写了以下代码:

但我需要在这里找到 IV 长度。在 PHP 中,他们使用: $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC); 如何在java中实现它?有人可以帮我吗?

我正在调用这样的方法:

0 投票
1 回答
855 浏览

c# - What is the length in bytes of AesCryptoServiceProvider GenerateIV()?

Do you know what the length of iv? Is it fixed with byte[16]?

Another question is: what is the length requirement of initialization vector of AesCryptoServiceProvider?

0 投票
1 回答
821 浏览

encryption - 处理 iv 的传输(初始化向量)

我有一个站点 A 和站点 B,站点 A 需要将敏感的加密数据发送到站点 B 以便站点 B 解密。我知道最好使用每个秘密字符串唯一的随机加密初始化向量 (iv) 进行加密,但我的问题是:

鉴于传输是使用 https 进行的,将 iv 与密文一起发送是否安全?iv转移是否有最佳实践可遵循?

我的理解是 iv 是密文开头的一部分,所以我倾向于相信 iv 没有真正的安全威胁。

谢谢!

0 投票
1 回答
3538 浏览

android - Android 密码 AES/GCM/NoPadding "iv==null"

试图在 Marshmallow 上加密和解密一些数据。加密效果很好,但是在尝试解密时,我得到了一个 RuntimeException,说“iv == null”。

基本上,cipher.getIV() 和 cipher.getParameters() 返回 null。我错过了什么吗?

0 投票
1 回答
1550 浏览

python - Python:在 AES 中使用相同的 IV 进行加密和解密

在 AES 中加密数据时,我很难理解 IV(初始化向量)的正确使用。

准确地说,我不确定将随机生成的 IV 存储在哪里:在我的脚本中,数据将被加密,然后保存到文件中,然后程序将终止。在下一个会话期间,必须解密先前保存的数据。如果我对 IV 的理解是正确的,我必须使用与加密相同的 IV 进行解密(但每个加密过程都使用另一个随机 IV)。因此,我必须将 IV 存储在某个地方——有些人建议将其添加到加密数据之前,但如果我做对了,那在我的情况下将不起作用,因为我需要 IV才能解密它。

这是正确的还是我误解了什么?我想避免在一些未加密的纯文本设置文件或其他内容中保存加密/散列密钥和 IV(即使本身已散列)。

0 投票
1 回答
2693 浏览

encryption - Initialization Vector (IV) in CBC mode for AES

I understand the IV should be random and XORed with the plain text to start the encryption. My question is, in addition to the key, do I have to remember the random IV as well for decryption?

0 投票
1 回答
650 浏览

c++ - 无法使用 openssl 为 aes gcm 设置 IV

我正在尝试在 C++ 中使用 OpenSSL 提供的 AES GCM 加密机制,并使用此链接上的示例作为参考: https ://wiki.openssl.org/index.php/EVP_Authenticated_Encryption_and_Decryption

但是,以下语句给了我错误:

我得到的错误是:

错误:“EVP_CTRL_GCM_SET_IVLEN”未在此范围内声明”。

我不明白,为什么我不能将 IVLEN 设置为 16 字节?我不想使用 12 字节的默认值。任何指针都会很棒。