加密 - 解密用AES和加密单块++(encrypt-decrypt single block wi

2019-06-25 13:48发布

我需要加密AES的单块。 我不能使用像CBC和其他任何模式。 每一个例子我所看到的使用流模式。

编辑:好吧,我做到了,在未来的方式,但我真的不喜欢这种尝试。

void dec(const byte *key, const byte* xblock, const byte *cipher, byte *plain) {
    AESDecryption d;

    try {
        const NameValuePairs &nvp = MakeParameters("", 0);
        d.UncheckedSetKey(key, 16, nvp);
        d.ProcessAndXorBlock(cipher, xblock, plain);
    }
    catch(...) {}
}

Answer 1:

AES在ECB模式是相同的单块加密,不同之处在于可以喂它多个块。

如果你只得到了CBC模式加密提供可以使用包含字节值都为零(块大小)IV使用CBC加密的第一个块。 这同样适用于计数器(CTR)模式加密和含有字节所有值为零(计数器仅第一块加密后增加)随机数。

加密+似乎是一个更高层次的加密API,所以最好不要直接直接调用AES实现。



文章来源: encrypt-decrypt single block with AES and Crypto++