Java生成的令牌不是随机的 - 但它是什么?

时间:2013-06-10 10:27:03

标签: java function session random token

我被告知要分析Web应用程序的行为,并注意到它会根据用户名+密码组合生成密码重置令牌。这意味着如果在重置期间帐户的用户名和密码组合保持不变,则生成的重置令牌也保持不变。 所以它不是随机的,不是基于时间戳或任何经常变化的东西。

对我来说,它看起来并不随机。但它是什么? 我检查了几个生成令牌的UUID等Java函数,但是它们的输出看起来不像我正在看的标记。

有谁知道(Java函数)生成这种令牌是什么?

Account B
token=YwQAAAAAAAAmONpWfOI-dGQoZBbXxUaApbRQ7E
token=YwQAAAAAAAADIDSPpW_5vC8AvpNTi5LIgQZ080
token=YwQAAAAAAAAg5NcxcGeRWXA2m_K0cm0TNx8rO8
token=YwQAAAAAAAA0H4tkoER8tDfMR_V_TT3BPfC43g
token=YwQAAAAAAAApFrrJCJvb_zH0p5f-HkIt7EtWgA
token=YwQAAAAAAAAiDeQFrxpTSwrFNCV4AQW0sdoiyw

Account A
token=TwQAAAAAAAAi6M6tduIa6EdB3-VB1J_l8Cyza8
token=TwQAAAAAAAAM-yFuFKebUZA-2q0YgwnJeGrZuo
token=TwQAAAAAAAAg0We7RWTMM9PYv68RCJMUG_MuBw

2 个答案:

答案 0 :(得分:1)

对我来说,这看起来像Base64编码的东西。尝试使用Base64解码您的令牌并查看其外观。

答案 1 :(得分:0)

我认为他们正在做这样的事情来生成base65压缩字符串

Sign a string using SHA1, then shrink it using url-safe base65