c - C服务器中的数据加密

标签 c encryption

我正在用 C 语言制作一个相对简单的文件传输服务器。该服务器是通过网络安全的角度开发的。我知道由于缺乏边界检查(以及其他问题),C 本质上是一种不安全的语言;但是我知道在 C 中至少可以保证数据的安全。
我的确切问题是,客户端将向服务器发送其文件夹的密码;但是,我希望对这个密码进行加密(它对于其他信息来说并不重要,但我也可能对其进行加密)。在 C 语言中,加密/解密通过网络发送的字符串的好方法是什么?

最佳答案

在解决这个问题之前,您将需要解决几个问题:

您希望使用对称密码(例如 AES)对数据进行加密(您需要找到一个用 C 语言实现 AES 的库),并了解 CBC 等加密模式。

但随之而来的问题是,您将使用什么 key 与密码来加密您的数据?所以你遇到了一个不同的问题,称为 key 管理。最简单的 - 如果在您的场景中没有问题 - 可能是将 key 存储在服务器上(这种方法称为 key 预分配),客户端也知道这一点。不管怎样,有很多方法可以进行 key 管理。您也必须阅读相关内容。

<小时/> PS。通常情况下,您不会加密密码,而是存储它们的哈希值,这也是事实。但无论如何我还是回答了你,以防你可能想加密一些其他信息。

关于c - C服务器中的数据加密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35182334/

相关文章:

java - 如何在php和android之间加密和解密数据

java - 无法从文本文件中解密密文,对称 key 实现。在java中

node.js - RSA enc/dec 的 node-forge 包错误

c - 文字常量的问题

c - 添加openLDAP基础DN失败的根本原因是什么?

c - 将 3d 模型文件(3ds/obj/任何开放格式)转换为 C 数组的工具

algorithm - 快速双向加密的建议?

java - AES加密算法输出字符串长度(String)错误?

c - 从编码的哈希值中导出 Argon2 类型是否安全?

c - 尝试访问 for 循环中的指针时出现段错误