1 回答
TA贡献1765条经验 获得超5个赞
需要一种可以编码和解码[6]字节的密码。
编码(以不同格式显示数据)和加密(提供机密性)之间存在差异。密码用于加密。此外,我假设您出于保密原因想要加密数据。
是否有第三方功能可以满足我的要求?或者 std 函数可以以某种方式实现这一点?
理论上 - 有些方法不需要填充。请参阅不同的操作模式。有些模式(CTR、OFB、..)不需要填充,从而有效地将块密码转换为流密码。
甚至还有专用的流密码,例如 Salsa 或 ChaCha。
所以 - 现在您可以将 6 个字节的明文加密为 6 个字节的密文。
当您需要发送与明文相同数量的加密数据时,有两个问题:
为了在重复使用相同密钥进行多次加密时保持数据机密性,每个密码都需要一些初始状态 (IV),它可以是随机的或计数器。必须不重复使用相同的 Key 和 IV。所以在正常情况下,这个计数器或状态是随加密数据一起发送的。使用一些静态向量可以破坏加密(部分或完全)。这就是评论中的人不能给你简单答案的原因。如果没有传输额外的数据,就没有适当的加密。
另一个问题是数据完整性。如果密文在传输过程中被修改(有意或无意),如果不传输额外的字节,接收方就无法检测到数据已被修改。我假设 6 字节无论如何都没有完整性控制,所以也许这不是你关心的问题。
通过位移和异或来实现这个指定的功能很幼稚,还有更多吗?
是的,您可以使用静态 IV 向量加密数据,但正如我们所理解的那样,这并没有正确加密,因此知道多个消息或初始信息,数据可以被完全解密。
使用 XOR、矩阵运算等简单的东西……也可以揭示密钥本身。
- 1 回答
- 0 关注
- 91 浏览
添加回答
举报