JBoss上的IOS身份验证和Java应用程序

时间:2014-02-25 07:14:49

标签: java ios rest authentication

我在Jboss AS上运行了一个Java应用程序。我正在编写ios应用程序,我需要代码进行身份验证。

在Java应用程序上使用REST服务是否可行的方法是检查userName和密码哈希值。

现在我试试这个: 在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应用程序更新数据。

更安全吗?

1 个答案:

答案 0 :(得分:0)

我的意见是,因为它通过窃取会话ID更容易受到中间攻击的影响,而且MD5已经过时,现在你可以使用 SHA-256或512 对于散列和盐渍密码散列将提高安全性。 请参阅this link for more secure hashing

为了获得良好的安全性,您需要将加密(如AES-256 )应用于您的有效负载,尤其是对于身份验证服务和其他敏感数据传输。

有关java-iOS AES encryption-decryption

的详情,请参阅此链接