日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux下des加密命令,linux下的DES加密

發(fā)布時間:2023/12/19 linux 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux下des加密命令,linux下的DES加密 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.



linux下的DES加密

des_crypt, ecb_crypt, cbc_crypt, des_setparity, DES_FAILED 都是用于DES快速加密

調(diào)用格式

#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。這些加密函數(shù)比crypt更快、更加通用。如果DES硬件有效,那么這些加密函數(shù)也可以使用它們。

ecb_crypt()工作于ECB模式(電子密碼本模式,把要加密的數(shù)據(jù)分成一塊塊獨立的數(shù)據(jù) 然后再進行加密,并行),加密每一個獨立數(shù)據(jù)塊。 cbc_crypt()工作于CBC模式(密碼塊鏈接模式,把數(shù)據(jù)分成多個塊,每個塊加密前與前一個塊的密文進行亦或操作,然后再加密,串行)。CBC比ECB更安全

使用說明

參數(shù)key是指8字節(jié)的密鑰,使用之前需對密鑰進行奇偶性設(shè)置des_setparity(char *key)。

參數(shù)data指需要加密或者解密的源數(shù)據(jù)

參數(shù)datalen指源數(shù)據(jù)長度,必須是8的倍數(shù),不是8倍數(shù),則datalen += 8 - datalen%8等其它操作讓其變?yōu)?的倍數(shù)

參數(shù)mode 可以用OR來制定多個模式,包括加密DES_ENCRYPT,解密DES_DECRYPT。軟件加密或硬件加密是DES_HW , DES_SW。如果指定了DES_HW ,但是相應(yīng)的硬件不支持,你那么默認會使用軟件加密并且返回DESERR_NOHWDEVICE。

返回值

DESERR_NONE???????? 成功

DESERR_NOHWDEVICE?? 加密成功,但是使用的是軟件加密而不是硬件加密

DESERR_HWERROR????? 硬件或者驅(qū)動出現(xiàn)錯誤

DESERR_BADPARAM???? 參數(shù)錯誤

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;

}

總結(jié)

以上是生活随笔為你收集整理的linux下des加密命令,linux下的DES加密的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。