2014-02-25 86 views
1

我有一個運行在Jboss AS上的Java應用程序。我正在編寫ios應用程序,我需要代碼進行身份驗證。JBoss上的IOS認證和Java應用程序

在Java應用程序中使用REST服務的好方法是檢查用戶名和密碼的哈希值。

現在我試試這個: 在Java的我寫的REST方法:

@GET 

@Path("/checkAuth/{userName}/{passHash}") 

@Produces("application/json") 

public AuthResult checkAuth(@PathParam("userName") String userName, @PathParam("passHash") String passwordHash) { 

    // code for checking hash of Password with that in SQL base 

} 

在iOS應用:

NSString *authRequest = [ NSString stringWithFormat: pathToRestWithParams, login, md5PassHash]; 

NSURL *restURL = [NSURL URLWithString:authRequest]; 
NSMutableURLRequest *restRequest = [NSMutableURLRequest requestWithURL:restURL cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:180]; 
NSHTTPURLResponse *response = nil; 
NSError *restError = nil; 
NSData *authResult = [NSURLConnection sendSynchronousRequest:restRequest returningResponse:&response error:&restError]; 

是否安全?

我想添加Java代碼,它將爲任何用戶返回會話密鑰(在Java應用程序中生成)。此會話密鑰將與REST請求一起發送,以更新ios應用程序中的數據。

更安全嗎?

回答

0

我的看法是NO,因爲它是通過竊取會話ID中間人攻擊更容易受到男人,也MD5已經過時,現在你可以使用SHA-256或512的哈希和鹽漬密碼哈希將提高安全。 參考this link for more secure hashing

爲了獲得良好的安全性,你需要像AES-256適用加密您的有效載荷,特別是對認證服務和其他敏感數據傳輸。

請參閱此鏈接更多關於java-iOS AES encryption-decryption