linux下des加密命令,linux下的DES加密
linux下的DES加密
des_crypt, ecb_crypt, cbc_crypt, des_setparity, DES_FAILED 都是用于DES快速加密
调用格式
#include
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更快、更加通用。如果DES硬件有效,那么这些加密函数也可以使用它们。
ecb_crypt()工作于ECB模式(电子密码本模式,把要加密的数据分成一块块独立的数据 然后再进行加密,并行),加密每一个独立数据块。 cbc_crypt()工作于CBC模式(密码块链接模式,把数据分成多个块,每个块加密前与前一个块的密文进行亦或操作,然后再加密,串行)。CBC比ECB更安全
使用说明
参数key是指8字节的密钥,使用之前需对密钥进行奇偶性设置des_setparity(char *key)。
参数data指需要加密或者解密的源数据
参数datalen指源数据长度,必须是8的倍数,不是8倍数,则datalen += 8 - datalen%8等其它操作让其变为8的倍数
参数mode 可以用OR来制定多个模式,包括加密DES_ENCRYPT,解密DES_DECRYPT。软件加密或硬件加密是DES_HW , DES_SW。如果指定了DES_HW ,但是相应的硬件不支持,你那么默认会使用软件加密并且返回DESERR_NOHWDEVICE。
返回值
DESERR_NONE 成功
DESERR_NOHWDEVICE 加密成功,但是使用的是软件加密而不是硬件加密
DESERR_HWERROR 硬件或者驱动出现错误
DESERR_BADPARAM 参数错误
linux中使用DES加密解密
key要使用des_setparity
int main()
{
int b_loop, b_len;
long long b_begin, b_end;
char b_key[100] = {0}, * b_test_data = NULL;
sprintf(b_key, "%s", "12345678");
b_test_data = (char *)malloc(100);
memset(b_test_data, 0 , 100);
b_len = sprintf(b_test_data, "%s", "abcdefghijklmnopqrstuvwxyz");
if(b_len % 8)
{
b_len += 8 - b_len % 8;
}
b_begin = getSystemTime();
ecb_crypt(b_key, b_test_data, b_len, DES_ENCRYPT);
b_end = getSystemTime();
printf("time = %lu, val = %s\n", b_end - b_begin, b_test_data);
ecb_crypt(b_key, b_test_data, b_len, DES_DECRYPT);
printf("data = %s\n", b_test_data);
return 0;
}
linux下des加密命令,linux下的DES加密相关推荐
- Linux下的tree命令 --Linux下目录树查看
Linux下的tree命令 --Linux下目录树查看 有时我们需要生成目录树结构,可以使用的有ls -R,但是实际效果并不好 这时需要用到tree命令,但是大部分Linux系统是默认不安装该命令的, ...
- Linux下python的命令,linux下python相关命令
若本机已安装python2,尽量不要动现有的python2,额外安装python3即可. 1.安装python3.6(centos下安装python3自带pip和setuptools) # 安装依赖环 ...
- linux里面查找替换命令,LINUX 查找替换命令 总结
find /var/ -name "*.php" > /home/tmp 在/var/目录下查找 所有以.php后缀结尾的文件 结果很多,就 > 输出结果到/home ...
- linux系统vi替换命令,linux:vi 替换命令
转自:http://www.cnblogs.com/afant/archive/2009/03/11/1408745.html :s/^.*$/\L&/100 ##将100行内的小写转换成大写 ...
- linux关闭后台运行命令,linux后台运行、关闭、查看后台任务常用命令
一.& 加在一个命令的最后,可以把这个命令放到后台执行,如: [root@bqh-01 ~]# watch -n 3 "sh 1.sh" #每3s在后台执行一次1.sh脚 ...
- linux安装DNS服务命令,linux配置dns服务器配置命令
linux配置dns服务器配置命令 Linux系统的DNS服务器怎么配置,配置命令有哪些?下面跟yjbys小编一起来了解一下吧! 一.实验目的 熟悉Linux系统中DNS服务器的配置方法.理解配置过程 ...
- 没法再详细的说说Linux压缩与归档命令(下-2)
6 7-Zip:7z文件压缩与解密 7-Zip(7-Zip官方网站:http://www.7-zip.org/)是一个开源的数据压缩程序,主要用在Windows.类Unix操作系统.7-Zip主体在G ...
- linux安装DNS服务命令,Linux下的安装和配置DNS服务器
Linux下的安装和配置DNS服务器 发布时间:2008-09-08 17:03:00 作者:佚名 我要评论 在Linux操作系统中使用BIND (Berkeley Internet Name ...
- linux系统怎么ping命令,Linux系统下的ping命令的使用
学习计算机网络的时候,常用的网络诊断工具比如ping.ipconfig命令这些都是我们经常要使用的,主要是用来监测网络是否通顺,相信你在Windows中已经是有经常使用过,并且也可以在dos系统下面可 ...
- linux中C编译命令,linux下命令行下编译c程式
linux下命令行下编译c程式 2008-02-23 05:41:36来源:互联网 阅读 () C 是任何版本的UNIX上的系统语言. C 在过去的二十年中有了很大的发展. 在80年代末期美国国家标准 ...
最新文章
- 奠定现代计算机发展的人物和思想,计算机基础第一部分.ppt
- 智能循迹小车_智能机器人之循迹小车——循迹原理
- FPGA设计的常用思想与技巧(转)
- 使用Java查询Sql Server数据库
- how to use webpart container in kentico
- 理解云原生--开发模型、架构原则、主要技术
- 腾讯Q3财报看点:净利近10年来首次下滑 为硬科技持续“烧钱”
- 网创第一件事是要找一起奋斗的人
- 学了python能干啥举例-1 行Python代码能干哪些事,这 13个你知道吗?
- enq: HW - contention等待事件
- nexus3 测试操作
- 一张图了解软件测试流程
- EAccessViolation 地址访问错误
- 1.100个房产测量常见问题 2. 现有的商用房产测绘软件 3.问题_拔剑-浆糊的传说_新浪博客...
- IT行业含金量较高的证书汇总
- VMware中Linux虚拟机root密码重置
- 不用传感器的指南针android app,Android 利用方向传感器实现指南针具体步骤
- 图片转pdf怎么转?怎么在电脑上把图片转成pdf?
- linux查看系统所有变量,Linux系统各指标命令
- 考试系统自动答题,你还在为不及格烦恼么?
热门文章
- CRM order lock will trigger product read API
- SAP UI5 GM6 require sap.ui.core.Core
- SAP UI5 extend debug
- CRM里把用户分配给一个position的执行调试
- Field EXP_REVENUE
- How is syntax error in Vue detected - Vue的语法错误检查机制介绍
- linux 怎么重装libaprutil,Apache安装出错_cannot install `libaprutil-1.la' to a directory
- python工程技巧_重点来了!掌握这些Python技巧,将给你节省大量时间
- proxy connect abort处理方法_Java代理设计模式(Proxy)的几种具体实现
- 叉积 微分 恒等式_考研真题分章解析 | 第二章 导数与微分