我在java语言中使用了泽西网络服务。
我有这段代码:
@GET
@Path("/getList/{login}/{password}/{email}")
@Produces(MediaType.APPLICATION_JSON + ";charset=utf-8")
public String getList(@PathParam("login") String login,@PathParam("password") String password,@PathParam("email") String email){
if(login!=null && !"".equals(login)&& password!=null && !"".equals(password))
{
if(login.equals("admin")&& password.equals("12345"))
{
List list= findDataList(login,password,email);
if(list!=null && list.size()>0)
{
JSONArray arrayObj=JSONArray.fromObject(list);
return arrayObj.toString();
}
else
{
return "No Data ";
}
}
else
{
return "access denied ";
}
}
else
{
return "access denied ";
}
}
我用这个网址来测试网络服务:
http://localhost:8080/projectTest/service/getList/admin/1235545/test@yahoo.com
我在服务器端修改了一个登录名和密码(“admin”,“12345”),并将与将在网络服务网址中发送的参数进行比较
我的目标是了解如何确保发送密码参数。
我希望密码将使用md5加密,然后在 getList 方法中解密此密码。
我认为最好的方法是使用相同的密钥
在客户端和服务器端加密和解密密码。
答案 0 :(得分:3)
正如评论中所述,MD5
是单向散列。这意味着一旦哈希,你就无法恢复原始值。
这是一种很好的安全性,但也许你的方法可以改进。
而不是"解密"现有密码,您可以散列已输入的密码,并将此散列与现有密码散列进行比较。如果它们相同,则密码相同,您可以授权登录尝试。
如果您仍需要解密密码,可以查看有关加密和解密的this related question