侧边栏壁纸
博主头像
noerror

虚灵不寐,众理具而万事出。

  • 累计撰写 239 篇文章
  • 累计创建 9 个标签
  • 累计收到 2 条评论
标签搜索

目 录CONTENT

文章目录

des_crypt函数用法详解

noerror
2022-10-19 / 0 评论 / 0 点赞 / 44 阅读 / 599 字 / 正在检测是否收录...

des_crypt函数用法详解

des_crypt函数简介

  • 头文件包含
#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函数常见使用错误

  • 编译错误
    warning: implicit declaration of function ‘des_crypt’ [-Wimplicit-function-declaration]
    解决办法:包含头文件
#include <rpc/des_crypt.h>

des_crypt函数详细描述

ecb_crypt ()和cbc_crypt ()实现了NBS DES(数据加密标准)。这些例程比crypt (3)更快,更通用,如果有的话,它们也能够利用DES硬件。ecb_crypt ()以ECB(电子码本)模式加密,该模式独立加密数据块。cbc_crypt ()以CBC(密码块链接)模式加密,该模式将连续的块链接在一起。CBC模式防止块的插入、删除和替换。此外,明文中的规则不会出现在密码文本中。
以下是如何使用这些例程。第一个参数key 是带有奇偶校验的8字节加密密钥。要设置密钥的奇偶校验(对于DES来说,奇偶校验位于每个字节的低位),请使用第二个参数des_setparity (),data 包含要加密或解密的数据。第三个参数datalen 是data 的长度(以字节为单位),它必须是8的倍数。第四个论点,mode 是由一些东西组合在一起形成的。对于加密方向,或者在DES_ENCRYPT或DES_DECRYPT 中进行软件加密与硬件加密,或者在DES_HW或DES_SW 中进行,如果指定了des_setparity ()0,并且没有硬件,则在软件中执行加密,例程返回DESERR_NOHWDEVICE ,对于cbc_crypt (),参数ivec是链接的8字节初始化向量。它在返回时更新到下一个初始化向量。

des_crypt函数返回值

  • DESERR_NONE没有错误。
  • DESERR_NOHWDEVICE加密成功,但是在软件中完成的,而不是在请求的硬件中完成的。
  • DESERR_HWERROR硬件或驱动程序中发生错误。
  • DESERR_BADPARAM例程参数错误。

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

0

评论区