openssl blowfish 加密解密

2021-06-28 17:20:37 字數 1541 閱讀 4798

前面對aes的使用進行了研究,這一節,介紹blowfish,blowfish也是一種對稱加密演算法,採用分組加密的模式。

c/c++採用openssl/crypt庫呼叫,過程比較簡單,直接看下面**:

#include #include "evp.h" 

#define break_error(msg)

#define cipher_info(e)

int test_ecb_blowfish(char *buf1,char *buf2,char *buf3,int *len1,int *len2,int *len3,unsigned char *key)

if(!evp_encryptfinal_ex(&ctx,buf2+(*len2),&tmplen))

}while(0);

*len2 = *len2 + tmplen;

evp_cipher_ctx_cleanup(&ctx);

fprintf(stderr,"encrypt:len1:[%d] len2:[%d]\n",*len1,*len2);

/* decrypt */

evp_cipher_ctx ctx_d;

evp_cipher_ctx_init(&ctx_d);

evp_decryptinit_ex(&ctx_d,evp_bf_ecb(),null,key,null);

cipher_info(&ctx_d);

doif(!evp_decryptfinal(&ctx_d,buf3+(*len3),&tmplen))

}while(0);

*len3 = *len3 + tmplen;

evp_cipher_ctx_cleanup(&ctx_d);

fprintf(stderr,"encrypt:len2:[%d] len3:[%d]\n",*len2,*len3);

/* compare the data */

if(memcmp(buf1,buf3,*len1) == 0)else

return 0;

}#define buf_size 102402

int main(int argc,char ** argv);

char * buf1 = (char *)malloc(buf_size + 1);

char * buf2 = (char *)malloc(buf_size + 128);

char * buf3 = (char *)malloc(buf_size + 128);

len1 = len2 = len3 = buf_size;

for(i = 0;i< buf_size;i++)

test_ecb_blowfish(buf1,buf2,buf3,&len1,&len2,&len3,key_8);

return 0;}//

// 標準ecb模式進行加密解密處理。

//

以上**是執行在 openssl-0.9.8zd 版本下通過測試的。不確定是否在openssl所有版本上面都可以執行。在使用是請親測。

vue js Angularjs AES加密解密

需要兩個js檔案。aes.js和mode ecb.js 以angular為例,現在www目錄下的index.html檔案中引入這兩個js檔案 加密相關 build lib cryptojslib rollups aes.js script build lib cryptojslib componen...

PHP檔案加密解

公鑰加密 param string 明文 param string 證書檔案 crt return string 密文 base64編碼 function publickey encodeing sourcestr,filename 私鑰解密 param string 密文 二進位制格式且base6...

mysql des mysql中DES加密解密

des decrypt crypt str key str 使用des encrypt 加密乙個字串。若出現錯誤,這個函式會返回 null。注意,這個函式只有當mysql在ssl 的支援下配置完畢時才會運作。請參見5.8.7節,使用安全連線 假如沒有給定 key str 引數,des decrypt...