java加密使用相同的密钥解密密码md5

时间:2016-06-14 20:23:07

标签: java encryption md5

我在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 方法中解密此密码。

我认为最好的方法是使用相同的密钥

在客户端和服务器端加密和解密密码。

1 个答案:

答案 0 :(得分:3)

正如评论中所述,MD5是单向散列。这意味着一旦哈希,你就无法恢复原始值。

这是一种很好的安全性,但也许你的方法可以改进。

而不是"解密"现有密码,您可以散列已输入的密码,并将此散列与现有密码散列进行比较。如果它们相同,则密码相同,您可以授权登录尝试。

  • MD5"可以"使用MD5哈希字典进行解密,但仍然很难使用非常用密码。

如果您仍需要解密密码,可以查看有关加密和解密的this related question

相关问题