2012-01-06 40 views

回答

8

SHA512實際上返回一個長度爲128的字符串。所以簡短的回答是,你的領域只需要128個字符。

+1

所以它應該是varchar(128)? ; p – 2012-01-06 19:50:02

+1

@Andy Lobel - 賓果,除非你使用二進制列 – afuzzyllama 2012-01-06 19:51:02

+1

@AndyLobel其實,如果你知道它確切的是128個字符,你可以使用'CHAR(128)'。 – Qdeep 2016-05-24 15:05:54

2

SHA512輸出512位或64字節。你可以存儲這些64個字節的二進制列,這是由128張十六進制數表示...

Hense需要128大小..

對於remainig Watch here

1

只是一個示範,看長散列密碼

$password = 'password'; 
$salt = 'salt'; 

$hash = hash('sha512', $salt.$password); 

echo strlen($hash); // OUTPUTS 128 
1

這取決於您使用的散列算法產生的字符串的長度。發佈的評論here表明,您選擇的sha512算法產生的字符串長度爲128個字符。因此,您的字段應該是128個字符。它可以更多,但沒有必要。減少密碼會減少密碼,從而使散列密碼「無效」。

+0

散列的子字符串仍然有效(因爲子字符串操作是「完整」散列的一部分),但理論上不太安全。 *你只需要記住在你的代碼中使用substring來匹配數據庫!* – willoller 2012-01-06 19:46:27

相關問題