c - DES 加密和密码模式

标签 c encryption cryptography ecb

我需要加密 ISO 8583消息...这里的问题是消息比 key 长。我需要有人帮我加密这个字符串。

例如:我的字符串中有 300 个字符;我应该单独加密每 16 个字符然后连接它们,因为我的主 key 长度是 16 个字节吗?

感谢您的帮助...


ISO 8583-1:2003 源自金融交易卡的消息 -- 交换消息规范 -- 第 1 部分:消息、数据元素和代码值。

最佳答案

DES 是分组密码,分组密码有不同的操作模式。

您提到的模式被称为 ECB(电子密码本),并且不是很安全(实际上,DES 也不是,但稍后会详细介绍)。

我建议您使用 CBC 或其他一些模式。

您可以在此处阅读有关分组密码操作模式的信息:Block cipher modes of operation

至于密码本身,我建议您尽可能避免使用 DES。现在 DES 非常容易破解。请使用 AES,如果 AES 不可用,至少使用 3DES。

编辑:响应 updated question ,是的,如果明文大小不是 block 大小的倍数,则需要填充最后一个 block 。

关于c - DES 加密和密码模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/525734/

相关文章:

c - 队列:警告:赋值从整数生成指针而不进行强制转换

c - 使用openmp没有结果

c# - 为什么不使用 DPAPI 加密所有设置而不是只加密主密码?

java - AES-256 可以在 API 级别 26+ 的 Android 设备上工作吗?

c - 字符串和指针的问题

objective-c - Objective c UIImage 到 char* 转换返回空字符串

c# - 使用 RijndaelManaged 在 C# 中加密/解密流

java - 没有身份验证标签的 AES GCM 解密

node.js - 使用 ECDH 和 nodejs 加密解密 secret

Java PBEwithMD5andDES解密问题