解密

2017-02-17 57 views
0

我的工作后,读取两个变量值“忘记密码”。我正尝试使用电子邮件+ current_time创建重置令牌。电子邮件是用户登录,而代码将检查时间> = 5分钟,则该链接将不起作用。这里是我的代码:解密

// preparing token email + time 
Date now   = new Date(); 
String prepareToken = "?email="+email+"&tokenTime="+now.getTime(); 

// encrypt prepareToken value 
Encryptor enc = new Encryptor(); 
resetToken = enc.encrypt(resetToken); 

令牌将作为例如被作为http://domainname.com/ForgotPassword?resetToken=adj23498ljj238809802340823

问题:
当用户点击它,然后我得到的请求参数,显然解密这个参数,但怎么能我得到一个字符串+时间,另一个字符串电子邮件

请告知

回答

0

如果您的问题只是个解析Ë解码的字符串来得到某种地图的参数的,我建议你阅读Parse a URI String into Name-Value Collection

希望它有帮助。

编辑:

假设你已经从以前的链接splitQuery(网址URL)方法和你成功解码令牌:

public String getEmailFromToken(String decodedToken) { 
     // if you decoded your token it will looks like the prepareToken String 
     String stubUrl = "http://localhost"+decodedToken; 
     Map<String,String> map = splitQuery(new URL(stubUrl)); 
     return map.get("timeToken"); 
    } 

我创建了一个正确形成的URL尊重URL语法。 有了小调整,你应该能够实现splitQuery的字符串。我希望你能做到这一点。

+0

我可以从这个URL'字符串prepareToken =获得例如电子邮件的具体参数值+电子邮件+“&tokenTime =” + now.getTime()“的电子邮件=?”;'然后我就可以得到tokenTime值分别时,我需要什么? – usr169

+0

是,如果转换查询字符串成地图,如按照其他问题的回答,你可以得到map.get(“tokenTime”) –

+0

我假设你已经有了将接收令牌的控制器方法tokenTime并解密它。情况并非如此吗?从我的心脏底部 –