java使用相同的密钥加密解密密码md5
我用java语言使用了jersey web服务 我有以下代码:java使用相同的密钥加密解密密码md5,java,encryption,md5,Java,Encryption,Md5,我用java语言使用了jersey web服务 我有以下代码: @GET @Path("/getList/{login}/{password}/{email}") @Produces(MediaType.APPLICATION_JSON + ";charset=utf-8") public String getList(@PathParam("login") String login,@PathParam("password") String password
@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 ";
}
}
我使用这个url来测试web服务:
http://localhost:8080/projectTest/service/getList/admin/1235545/test@yahoo.com
我有一个在服务器端固定的登录名和密码(“admin”,“12345”),并将与将在web服务url中发送的参数进行比较
我的目标是了解如何确保密码参数的发送安全
我希望密码将使用md5加密,然后在getList方法中解密此密码
我认为最好的办法是使用同一把钥匙
在客户端和服务器端加密和解密密码。如注释所述,
MD5
是一种单向散列。这意味着一旦散列,您*就无法恢复原始值
这是很好的安全性,但您的方法可能会有所改进
您可以对输入的密码进行散列,并将此散列与现有密码散列进行比较,而不是对现有密码进行“解密”。如果它们相同,则密码相同,您可以授权登录尝试
- MD5“可以”使用MD5哈希字典解密,但对于非通用密码仍然很难
如果您仍然需要解密的密码,您可以查看关于加密和解密的说明。
MD5
是一种单向散列。这意味着一旦散列,您*就无法恢复原始值
这是很好的安全性,但您的方法可能会有所改进
您可以对输入的密码进行散列,并将此散列与现有密码散列进行比较,而不是对现有密码进行“解密”。如果它们相同,则密码相同,您可以授权登录尝试
- MD5“可以”使用MD5哈希字典解密,但对于非通用密码仍然很难
如果仍然需要解密的密码,可以查看关于加密和解密的信息md5是一个哈希函数。它不是加密,您不能“解密”md5哈希。这是一个绞肉机:牛进去,汉堡包出来。你不能拿着那个汉堡重新组装原来的牛。登录应该是一个POST请求+你通常不加密客户端/在传输它时,因为它已经加密了,因为你只使用https。@MarcB我渴望在五百年后证明你错了,当我们有技术将牛从汉堡中重新组装出来。md5是一个散列函数。它不是加密,您不能“解密”md5哈希。这是一个绞肉机:牛进去,汉堡包出来。你不能拿着那个汉堡重新组装原来的牛。登录应该是一个POST请求+你通常不加密客户端/在传输它时,因为它已经加密了,因为你只使用https。@MarcB我渴望在五百年后证明你错了,那时我们有技术将牛从汉堡中重新组装出来。