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

Java生成的令牌不是随机的——但它是什么?,java,function,session,random,token,Java,Function,Session,Random,Token,我被告知要分析web应用程序的行为,并注意到它根据用户名+密码组合生成密码重置令牌。这意味着,如果帐户的用户名和密码组合在重置期间保持不变,则生成的重置令牌也保持不变。 所以它不是随机的,也不是基于时间戳或任何经常变化的东西 我一点也不觉得随机。但这是什么呢? 我检查了几个生成令牌的Java函数,如UUID,但它们的输出与我看到的令牌不同 有人知道是什么(Java函数)生成了这种令牌吗 Account B token=YwQAAAAAAAAmONpWfOI-dGQoZBbXxUaApbRQ7E

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

我一点也不觉得随机。但这是什么呢? 我检查了几个生成令牌的Java函数,如UUID,但它们的输出与我看到的令牌不同

有人知道是什么(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

对我来说,这看起来像是一个基本的东西。试着用Base64解码你的令牌,看看它是什么样子。

我想他们正在做类似的事情来生成base65压缩字符串


谢谢你的提示。我认为“”和“-”不能出现在base64字符串中,但我查看了Wikipedia,它说有一个变体称为“base64,带有URL和文件名安全字母表(RFC 4648'base64url'编码)”,其中包括“”和“-”。