【问题标题】:Encrypting a file using openssl with a password in C在 C 中使用带有密码的 openssl 加密文件
【发布时间】:2011-02-24 10:12:41
【问题描述】:

我有一个文本文件。我需要用密码加密那个文件。 在命令行中(-k 用于密码和 -nosalt -des3)正在使用。 是否有任何示例可以在 C API 中实现相同的功能。

【问题讨论】:

标签: c encryption cryptography openssl des


【解决方案1】:

Openssl 包含许多用于许多不同加密系统的例程,包括 DES。您想要的函数可能是 DES_ncbc_encrypt 或其他变体之一,所有这些都在 des(3) 手册页中进行了描述。

【讨论】:

    【解决方案2】:

    如果您使用的是 Linux 系统,则可以使用 crypt 功能。他的原型是:

    #include <unistd.h> 
    char * crypt(const char *key, const char *salt);
    

    这是他的描述(man 3 crypt):

    crypt() 函数执行密码 加密,基于 NBS 数据 加密标准 (DES)。额外的 添加了代码以阻止密钥 搜索尝试。首先 crypt() 的参数是以 null 结尾的字符串,通常是 用户输入的密码。第二个是 以两种形式之一:如果它以 一个下划线(``_''),一个扩展的 格式用于解释键和盐值,如 如下所述。

    【讨论】:

    • crypt 函数截断密码,只使​​用 DES1 并以类似 base64 的格式输出,所以这可能不是发帖人想要的。
    • 对不起,我误解了这个问题。我没有看到标签 openssl。我应该删除我的答案吗?
    猜你喜欢
    • 2021-09-07
    • 2018-11-28
    • 2013-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-14
    • 2020-12-11
    • 2021-02-02
    相关资源
    最近更新 更多