linux c md5加密 使用 openssl

2021-08-08 20:29:52 字數 1094 閱讀 6842

方法一:

#include#include#includeint main(int argc, char **argv)

; char tmp[3] = ;

int i;

md5_init(&ctx);

md5_update(&ctx, data, strlen(data));

md5_final(md, &ctx);

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

printf("%s\n", buf);

return 0;

}

輸出:

202cb962ac59075b964b07152d234b70

方法二:

#include#include#includeint main(int argc, char **argv)

, buf[33] = ;

md5(data, strlen(data), md);

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

printf("%s\n", buf);

return 0;

}

輸出:

202cb962ac59075b964b07152d234b70

總結:兩種實現方式,一樣的結果。相比較,第二種方法更直觀簡單些。

遇到的問題:

1.sprintf時的格式,%02x和%2.2格式是一樣的,強制輸出兩位,比如十進位制的8,十六進製制也是8,這個格式是控制輸出兩位,08。如果加密結果要小寫字母顯示,就是"%2.2x",大寫就是"2.2x"。

2.一定要使用unsigned char,雖然是char,其實就是個int,當然,它只有乙個位元組,和char的區別是,unsigned char 0~255 ,char -127~127。使用char會出問題。這個md5加密函式,返回16個十進位制數,範圍在0~255間,把它format為十六進製制就是32為md5編碼了。

3.gcc編譯的時候,後面加上引數 -lcrypto 如果系統沒有安裝libcrypto,是不能用這個方法的。

如果不想使用openssl庫函式,前面我的文章裡有md5加密的原始碼,可以直接使用。

Sentinel LDK linux加密使用

在windows上安裝sentinel ldk 將linux相應程式包拷貝到linux作業系統 在windows上設定加密的資訊 進入sentinel ldk sdk 7.9 linux redistribute runtime目錄 安裝aksusbd ubuntu通過dpkg安裝,centos通過...

gpg加密使用

gpg一般是兩方用來加密傳送資訊的。使用對方的公鑰進行加密,可以確保只有對方才能用他的私鑰解密。使用自己的私鑰對訊息簽名,可以確保對方用自己的公鑰驗證訊息的確源自自己。gpg generate key之後會詢問使用者名稱 郵箱以及密碼,最後會需要大量的隨機數 這裡我等了十分鐘以上才好 一般私鑰匯出是...

md5 加密(使用openssl庫C)

參考 依賴openssl裡面的 lcrypto libcrypto.so庫 include unsigned char md5 const unsigned char d,unsigned long n,unsigned char md int md5 init md5 ctx c int md5 ...