问题标签 [block-cipher]

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 回答
199 浏览

security - 发送 IV 加密与否?

我正在使用CBC模式。我正在考虑发送以 ECB 模式加密的 IV(因为它只是一个块),而不是发送“普通”IV。我会获得一些安全感吗?

0 投票
1 回答
871 浏览

java - Java 加密 AES 函数

作为练习,我正在实现自己的 CBC 和 CTR 模式。(例如,对于 CBC 的第一个块,E(k, IV xor message[0])。

例如,我尝试了以下想法,我可以将其用作我的E函数(使用 BouncyCastle):

但“无”不是一个选项。

我的问题是如何为我的目的使用 Java AES 函数;我该怎么办E(k, ...)

0 投票
1 回答
421 浏览

java - 这种 AES 加密是否足够安全?

我从http://www.ravenblast.com/index.php/blog/android-password-text-encryption/获得了这段代码,虽然它有效,但我越来越怀疑它不够安全。根据其他来源,似乎没有任何初始化向量是必需的。

0 投票
1 回答
197 浏览

algorithm - 分组密码算法

有人可以通过示例为我提供一个好的块密码算法。这是字符串的数据屏蔽所必需的。算法应该快速且不易逆转,因为这将应用于数百万条记录。

无论哪种方式,您还可以为固定长度的数据屏蔽算法建议一些其他算法,该算法将快速且不易逆转。

0 投票
1 回答
1396 浏览

mysql - 分组密码、盐、AES、MySQL 和凭证存储的最佳实践

我有一种情况,我必须存储密码,因为我正在构建一个系统以连接到另一个系统。这个其他系统只允许一个用户帐户,并且连接到它的唯一方法是通过密码。哈希在这里不合适。我必须以可以检索的方式存储密码。

现在,知道这不是一个完美的系统,我正试图限制如果有人以某种方式访问​​数据库的损害。由于这个数据库需要被不同的平台使用,我决定使用 MySQL 自己的内置加密功能。这样,我就不用担心为各种语言和系统找到兼容的加密/解密算法实现了。我可以在查询中使用 MySQL 的函数。

存储密码时,我将使用AES_ENCRYPT("password", "encryption key"). 然后我意识到我可能应该使用一些盐,这样如果他们能够获得一个密码,就很难获得其他密码。可是等等!重点是什么?如果他们能够获得一个密码,他们必须拥有加密密钥,是吗?

此外,这是一个分组密码。在某些情况下,盐几乎是无用的。

我的问题

  • 我是否认为在像我这样的情况下使用对称加密时没有理由使用盐?

  • 鉴于我必须以允许我检索原始值的方式存储密码,我应该考虑其他方法吗?(我知道我需要注意加密密钥的存储位置和方式,并且我还需要保护我的 MySQL 日志。)

0 投票
0 回答
771 浏览

encryption - 密码反馈模式c++实现

嗨,我厌倦了用 DES 实现 CFB。我想我可以使用 CFB 进行加密,但我该如何解密?我的主要问题是使用 CFB 正确加密的 CFB 代码??。由于我的限制,我无法使用其他库。

}

0 投票
4 回答
12063 浏览

aes - 如何检测分组密码模式

如何检测消息是否通过CBCECB模式加密?

我创建了一个随机加密AES 128 CBCECB的函数,并且我在明文密文之间进行了汉密处理,但接缝与密码模式无关。

如何检测分组密码模式

先感谢您

0 投票
1 回答
11098 浏览

c - Openssl 中的 ECB、CFB、OFB 密码模式

我知道当我将 CBC 模式与 Openssl 一起使用时,我可以提供一个块大小的倍数作为输入。但是其他模式呢?欧洲央行、CFB、OFB?我看到了一个文档,但对我来说并不完全清楚。我应该循环调用它们吗?

比方说,欧洲央行。它一次加密 64 位。所以伪代码看起来像这样(应该看起来像这样)?

但是使用上面的代码它并不好。当我改变c += 8;c += 16;的确定然后。什么是这样做的好方法?我的意思是,我们都知道 8x8 = 64 位,所以这应该是正确的,但事实并非如此,加密/解密仅在我拥有c += 16;.

其他密码模式呢?

ECB 模式的示例(请注意,问题也与其他模式有关;)):

0 投票
1 回答
1989 浏览

c - 此代码是否有资格成为分组密码

好的,在你们谴责我之前:我知道这是一个可怕的代码和超弱的密码。我只是想找出以下是否有资格成为分组密码(即使是非常基本且薄弱的密码)

这是输出:

0 投票
1 回答
84 浏览

c - 如何在编码和解码时正确处理文件?

我如何准确地加密和解码文件并不重要。我将文件操作为char mass,一切都很好,直到我得到文件,其大小不分为 8 个字节。因为我可以每轮加密和解码文件 8 个字节,因为算法的特殊质量(块的大小必须是 64 位)。

那么,例如,我面对.jpg并尝试简单地在文件末尾添加空格,结果文件无法打开(ofc。与 .txt 文件没有什么不好的事情发生)。

这里有什么出路吗?

如果您想了解有关算法http://en.wikipedia.org/wiki/GOST_(block_cipher)的信息。

UPD:我无法存储添加了多少字节,因为可以删除或移动初始文件。而且,我们应该做的事情是我们只知道密钥并拥有加密文件。