2013-10-16 85 views
0

我被給了一個JSP頁面,任何人都可以查看頁面源並找到用戶名和密碼。我的任務是讓它有點安全。經過一番閱讀後,我想我會實現一個SHA-256加密系統,但我不太確定如何做到這一點。如何爲JSP創建安全登錄系統?

我應該如何存儲哈希密碼?我幾乎沒有任何有關JSP /安全性的經驗,所以我沒有完全理解這些步驟。用戶輸入密碼並用SHA 256加密後,該字符串是否與文本文件中的字符串進行比較?最好的辦法是什麼?

在一個JSP文件中完成整個過程與多個完成之間的區別是什麼?我注意到有時登錄和加密在同一文件中發生,而其他時間,表單使用其他JSP文件。

+1

這是一個非常廣泛的話題,並沒有簡單的/一個單一的答案。準備好看看有什麼要求的問題,數據庫系統等等......這裏是一個使用MySQL存儲密碼的例子http://javaknowledge.info/?p=501在密碼存儲清楚的部分在數據庫中,您可以使用'javax.crypto'軟件包來加密salt的密碼,以便以後在登錄時驗證它 – JScoobyCed

+0

我認爲在我的情況下使用數據庫太複雜。我的意思是,這最初是以頁面源代碼中的密碼開始的。我一直在看一些登錄servlet文件,我看到存儲在其中一個文件中的用戶名/密碼。我只是想採取下一步來散列這些。 – krikara

+0

第二個想法是否有任何意義在文本文件上存儲哈希密碼?似乎在文本文件上存儲密碼是相同的,無論它是否被散列。我想我將不得不讓所有的密碼通過數據庫,以使其更安全。 – krikara

回答

0

去和Spring Web MVC +彈簧安全插件中提供所有你需要的只是與XML和數據庫

<beans:beans xmlns="http://www.springframework.org/schema/security" 
      xmlns:beans="http://www.springframework.org/schema/beans" 
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xsi:schemaLocation="http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans.xsd 
    http://www.springframework.org/schema/security 
    http://www.springframework.org/schema/security/spring-security.xsd"> 
    <http auto-config="true" use-expressions="true"> 
     <intercept-url pattern="/admin*" access="hasAnyRole('ROLE_Admin')" /> 
     <form-login login-page="/login" default-target-url="/welcome" 
          authentication-failure-url="/loginfailed" /> 
     <logout logout-success-url="/login" /> 
    </http> 
    <authentication-manager> 
     <authentication-provider> 
      <password-encoder hash="sha256"/> 
     <jdbc-user-service data-source-ref="dataSource" 
      users-by-username-query=" 
       select username,password, enabled 
       from users where username=?" 
      authorities-by-username-query=" 
       select u.username, u.authority from users u 
       where u.username =? " 

     /> 
     </authentication-provider> 
    </authentication-manager> 
</beans:beans>