Linux中MD5加密過程與實現使用者驗證

2022-02-16 17:34:52 字數 991 閱讀 3436

linux中使用md5實現使用者驗證

使用openssl中的md5函式,該函式返回16位元組的unsigned char型別的資料,每個位元組的範圍都在0~255間,把

它格式化為十六進製制就是32位md5編碼。注:乙個位元組為8位,正好可以表示2位的十六進製制。

使用登入客戶端的使用者名稱從redis資料庫中得到salt值和加密後的密碼,然後把登入客戶端的密碼經過salt加密後,與

redis資料庫中的密碼進行比較。相同則驗證通過,否則驗證失敗。

redis資料庫中密碼的儲存格式為password:salt

使用者驗證演算法如下:

int user_authenticate(char *username, char *password)

, md5_str[33]=;

unsigned char md[16];

int i;

//get_salt_pw呼叫redis資料庫獲得password:salt

salt_pw = get_salt_pw(db, username);

pw = strtok(salt_pw, ":");

if(!pw)

salt = strtok(null, ":");

if(!salt)

strcpy(buf, password);

strcat(buf, salt);

md5((const unsigned char*)buf, strlen(buf), md);

//transform to md5 string

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

//compare encode password using md5

if(strcmp((char*)md5_str, pw))

return 1; 

}其中要注意strtok函式的使用,以及16位元組的unsigned char轉換為32位十六進製制數的過程。

MD5加密與解密

using system using system.collections.generic using system.linq using system.text using system.security.cryptography using system.io namespace encrypt...

加密方法 MD5加密

一.md5加密演算法 1.1 md5演算法的定義 md5是雜湊雜湊演算法,對於md5而言,有兩個特性是很重要的,第一 明文資料經過雜湊以後的值是定長的 第二 是任意一段明文資料,經過雜湊以後,其結果必須永遠是不變的。前者的意思是可能存在有兩段明文雜湊以後得到相同的結果。md5是雜湊雜湊演算法,對於m...

檔案md5加密

計算檔案的 md5 值 要計算 md5 值的檔名和路徑 md5 值16進製制字串 public static string md5file string filename 計算檔案的雜湊值 要計算雜湊值的檔名和路徑 演算法 sha1,md5 雜湊值16進製制字串 public static stri...