我创建了一个json webservice(C#,WCF),我需要标识一个用户。没有会话管理,因此用户需要为每个命令发送一个标识字符串。我提出的解决方案是AES加密用户的凭证以及字符串'过期'(当前为1000ms)的时间,然后在发送(通过URL或其他方式)之前使用Base64对其进行编码(HttpServerUtility.UrlTokenEncode)。如何将熵引入编码的Base64字符串?
我的问题是这样的:编码的字符串几乎总是看起来一样,只有很少的变化(我认为这将是分钟&秒过期,因为凭证日期和小时很少更改。只能使用一次(最后收到的字符串被记录下来,而倒数第二个可能已经过期),我仍然认为只需拦截并阻止GET请求很容易,然后再重发它。进攻的时候是自动的,甚至超时可能会无法正常工作。
所以。我怎么能引入额外的(可逆的)熵的AES base64编码字符串?
为什么它需要是可逆的?难道你不能只生成GUID,将它与其他需要的信息(用户,时间戳)一起保存到数据库并发送给用户? – svick 2012-03-05 01:38:48