登入系統中密碼用MD5加密有何作用?防誰呢?(附有程式碼)
阿新 • • 發佈:2019-02-10
在學習PHP100教程時,看到留言板的登入製作,先把MD5加密過的密碼形式儲存到資料庫中,然後通過登陸框輸入未加密的原始密碼,PHP從後臺幫你把原始密碼生成對應的MD5,再去和資料庫中的MD5密碼進行比對,比對一致則登入成功。
我就在弱弱地想,這樣的MD5加密,為了防止誰呢?
如果MD5加密,是為了讓密碼變成位數更多更復雜的一個字串,那盜號者通過前端登入頁面嘗試試錯的方式猜測密碼,也是經過MD5幫忙加密的試錯啊,盜號者並不需要直接從頭到尾測試16位或32位的密碼。
如果是防止侵入資料庫的黑客,那黑客一是直接指導了MD5形式的密碼,可在前端用不再進行密碼MD5加密的形式進行登入,當然,如果黑客侵入了資料庫,給你把MD5的密碼改成111,不就破解了嗎?
最佳答案
最佳答案
我就在弱弱地想,這樣的MD5加密,為了防止誰呢?
如果MD5加密,是為了讓密碼變成位數更多更復雜的一個字串,那盜號者通過前端登入頁面嘗試試錯的方式猜測密碼,也是經過MD5幫忙加密的試錯啊,盜號者並不需要直接從頭到尾測試16位或32位的密碼。
如果是防止侵入資料庫的黑客,那黑客一是直接指導了MD5形式的密碼,可在前端用不再進行密碼MD5加密的形式進行登入,當然,如果黑客侵入了資料庫,給你把MD5的密碼改成111,不就破解了嗎?
那麼,登入系統製作過程,使用MD5加密到底是為了防止哪種安全隱患呢?
最佳答案這個加密當然是為了防止資訊不被盜取,修改,保護資訊啊,黑客入侵的話也是要只要你的加密後的密碼才能知道,況且MD5加密後面可以帶好多內容,即使你用破解方式來也是不行的,因為你方式不同破解出來的就有區別啊,我使用者登入的密碼是加密之後通過網際網路傳輸的,然後跟資料庫匹配,你資料庫密碼改成111也是沒用的,因為我資料密碼傳輸的時候就已經加密處理了,雖說你密碼輸入111,但是經過加密後就不是111了,這個跟資料庫匹配不同,就永遠錯的,黑客倒取資訊我想不會那麼笨,去記原本只有幾個字母的密碼加密後成了32位的數字,都是盜取原本密碼。最後就是跟你說下,這個MD5你現在還沒真的瞭解到它的用處,等你做一個涉及使用者註冊,登陸,以及賬戶資金安全的時候你就知道它的重要性了。
最佳答案
1. [程式碼][Java]程式碼
?1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
/**
*
MD5加碼。32位
*
@param inStr
*
@return
*/
public
static
String MD5(String inStr) {
MessageDigest
md5 = null ;
try
{
md5
= MessageDigest.getInstance( "MD5" );
}
catch
(Exception e) {
System.out.println(e.toString());
e.printStackTrace();
return
"" ;
}
char []
charArray = inStr.toCharArray();
byte []
byteArray = new
byte [charArray.length];
for
( int
i = 0 ;
i < charArray.length; i++)
byteArray[i]
= ( byte )
charArray[i];
byte []
md5Bytes = md5.digest(byteArray);
StringBuffer
hexValue = new
StringBuffer();
for
( int
i = 0 ;
i < md5Bytes.length; i++) {
int
val = (( int )
md5Bytes[i]) & 0xff ;
if
(val < 16 )
hexValue.append( "0" );
hexValue.append(Integer.toHexString(val));
}
return
hexValue.toString();
}
|
最佳答案
這個加密當然是為了防止資訊不被盜取,修改,保護資訊啊,黑客入侵的話也是要只要你的加密後的密碼才能知道,況且MD5加密後面可以帶好多內容,即使你用破解方式來也是不行的,因為你方式不同破解出來的就有區別啊,我使用者登入的密碼是加密之後通過網際網路傳輸的,然後跟資料庫匹配,你資料庫密碼改成111也是沒用的,因為我資料密碼傳輸的時候就已經加密處理了,雖說你密碼輸入111,但是經過加密後就不是111了,這個跟資料庫匹配不同,就永遠錯的,黑客倒取資訊我想不會那麼笨,去記原本只有幾個字母的密碼加密後成了32位的數字,都是盜取原本密碼。最後就是跟你說下,這個MD5你現在還沒真的瞭解到它的用處,等你做一個涉及使用者註冊,登陸,以及賬戶資金安全的時候你就知道它的重要性了。