DES_CRYPT - Linux手册页
Linux程序员手册 第3部分
更新日期: 2020-04-11
名称
des_crypt,ecb_crypt,cbc_crypt,des_setparity,DES_FAILED-快速DES加密
语法
#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);
说明
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字节初始化向量。返回时将更新到下一个初始化向量。
返回值
- 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。
属性
有关本节中使用的术语的说明,请参见attribute(7)。
Interface | Attribute | Value |
ecb_crypt(),cbc_crypt(),des_setparity() | Thread safety | MT-Safe |
遵循规范
4.3BSD。不在POSIX.1中。
出版信息
这个页面是Linux手册页项目5.08版的一部分。有关项目的说明、有关报告错误的信息以及此页面的最新版本,请访问https://www.kernel.org/doc/man-pages/。