返回值

DESERR_NONE
没错
DESERR_NOHWDEVICE
加密成功,但使用软件而不是请求的硬件完成。
DESERR_HWERROR
硬件或驱动程序中发生错误。
DESERR_BADPARAM
错误的例行讨论。

给定结果状态统计信息,宏DES_FAILED(stat)仅对于前两个状态为false。

版本

这些功能已添加到2.1版的glibc中。

因为它们使用了不再被认为是安全的DES块密码,所以在glibc 2.28中删除了ecb_crypt(),ecb_crypt(),crypt_r()和des_setparity()。应用程序应切换到现代加密库,例如libgcrypt。

遵循规范

4.3BSD。不在POSIX.1中。

名称

des_crypt,ecb_crypt,cbc_crypt,des_setparity,DES_FAILED-快速DES加密

出版信息

这个页面是Linux手册页项目5.08版的一部分。有关项目的说明、有关报告错误的信息以及此页面的最新版本,请访问https://www.kernel.org/doc/man-pages/

说明

ecb_crypt()和cbc_crypt()实现NBS DES(数据加密标准)。这些例程比crypt(3)更快,更通用。他们还可以利用DES硬件(如果有)。 ecb_crypt()以ECB(电子密码簿)模式加密,该模式独立加密数据块。 cbc_crypt()以CBC(密码块链接)模式加密,该模式将连续的块链接在一起。 CBC模式可防止插入,删除和替换块。另外,明文中的规则性不会出现在密文中。

这是如何使用这些例程的方法。第一个参数key是具有奇偶校验的8字节加密密钥。要设置密钥的奇偶校验(对于DES而言,奇偶校验位于每个字节的低位),请使用des_setparity()。第二个参数data包含要加密或解密的数据。第三个参数datalen是数据的长度(以字节为单位),该长度必须是8的倍数。第四个参数mode是通过对某些事物进行"或"运算而形成的。对于加密方向,或者在DES_ENCRYPT或DES_DECRYPT中。对于软件加密还是硬件加密,或者使用DES_HW或DES_SW。如果指定了DES_HW,并且没有硬件,则加密将通过软件执行,并且例程返回DESERR_NOHWDEVICE。对于cbc_crypt(),参数ivec是用于链接的8字节初始化向量。返回时将更新到下一个初始化向量。

语法

#include <rpc/des_crypt.h>

int ecb_crypt(char *key, char *data, unsigned datalen,
              unsigned mode);

int cbc_crypt(char *key, char *data, unsigned datalen,
              unsigned mode, char *ivec);

void des_setparity(char *key);

int DES_FAILED(int status);
DES_CRYPT - Linux手册页

Linux程序员手册 第3部分
更新日期: 2020-04-11

另外参见

des(1),crypt(3),xcrypt(3)

属性

有关本节中使用的术语的说明,请参见attribute(7)。

InterfaceAttributeValue
ecb_crypt(),cbc_crypt(),des_setparity()Thread safetyMT-Safe
日期:2019-08-20 18:00:09 来源:oir作者:oir