使用MD5進行密碼加密儲存的分析

2021-10-14 16:37:57 字數 1691 閱讀 8303

密碼應該使用為不可逆加密演算法,其中md5是一種簡單易使用的演算法,主要優點如下:

上面提到了加鹽,加鹽一般使用給密碼後面新增當前時間毫秒數等方法完成,至於為什麼需要加鹽呢?比如某些**的使用者資訊洩露的時候,另外一些非法分子可以進行md5加密結果暴力破解得出原始密碼,並不是他們能夠反解密md5加密結果,而是他們會讓很多資料使用md5演算法生成加密結果,然後拿著**的md5加密密碼去和他們資料庫中的資料(彩虹表)進行比對,從而得出我們的原始密碼,這種情況是有可能發生的,然後我們可以通過加鹽的方式來解決這個問題,加鹽可以加固定鹽或者隨機鹽,如果使用固定鹽的話,固定鹽暴露之後我們的密碼依然是不安全的,還可以新增隨機鹽,比如我們上面提到的在密碼後面新增當前時間毫秒數的方法來完成加鹽操作,這樣的話我們資料庫需要儲存加密之後的密碼和我們的鹽(即加在密碼的當前時間毫秒數),如果不想這樣做,我們可以使用spring提供的加鹽機制,接下來我們會提到

import org.apache.commons.codec.digest.digestutils;

import org.springframework.security.crypto.bcrypt.bcryptpasswordencoder;

public class test

}

結果:

e10adc3949ba59abbe56e057f20f883e

4edaf8c812df9aa68ea048b5fae80b4b

$2a$10

$7f8udbreharigppllq2n9o2rb/i/ex2m50wfue1hexl2iapjfvguo

true

public

class

md5util

// 使用md5加密演算法

string algorithm =

"md5"

;try

catch

(nosuchalgorithmexception e)

}// 獲取md5方法2

public

static

string

ge***5two

(string source)

;byte

bytes = source.

getbytes()

;messagedigest md =

messagedigest

.getinstance

("md5");

md.update

(bytes)

; bytes = md.

digest()

;int j = bytes.length;

char

chars =

newchar

[j *2]

;int k =0;

for(

int i =

0; i < bytes.length; i++

)return

newstring

(chars);}

catch

(nosuchalgorithmexception e)

}}

關於密碼進行MD5加密

system.security.cryptography.md5cryptoserviceprovider md5csp new system.security.cryptography.md5cryptoserviceprovider 例項化md5 獲取要加密的字段,並轉化為byte陣列 byte...

MD5 密碼加密

asp.net中md5加密碼的方法 page language c contenttype text html import namespace system asp.net中實現對密碼的加密 方法一 public static string encrypt string password,int ...

使用wincrypt進行md5加密

發一下之前在用c 寫windows下的爬蟲的時候用到的 非常羨慕php用自帶的md5函式直接使用即可。在windows環境下可以用第三方庫或winapi來進行md5摘要。以下為自己寫好的乙個md5加密類,為了方便類成員變數都採用了public的許可權,僅供參考 globallib 自己定義的一些巨集...