gpt4 book ai didi

java - 更改 tomcat session ID 以包含大写和小写字符

转载 作者:行者123 更新时间:2023-11-28 22:15:28 25 4
gpt4 key购买 nike

我有一个要求,需要确保Tomcat生成的session id格式应该包括大写、小写字符和0-9。我检查了Tomcat的源代码。\org\apache\catalina\util\StandardSessionIdGenerator.java

在方法 public String generateSessionId(String route)

将字节渲染为十六进制数字字符串的代码如下:

byte b1 = (byte) ((random[j] & 0xf0) >> 4);
byte b2 = (byte) (random[j] & 0x0f);
if (b1 < 10)
buffer.append((char) ('0' + b1));
else
buffer.append((char) ('A' + (b1 - 10)));
if (b2 < 10)
buffer.append((char) ('0' + b2));
else
buffer.append((char) ('A' + (b2 - 10)));

看起来像这样,当将大写字母“A”更改为“a”时,我就可以实现我的目标。(目标是生成的 session ID 将同时包含 A-Z、a-z 和 0-9)

更改后生成的session id:

6B95cDf17411a9555D0E42d99C8E029​​2

这是一个简单有效的更改,还是您看到任何潜在的问题。

谢谢。

最佳答案

这听起来像是一种非常奇怪的要求 - 这里重要的是底层 session ID 的长度,而不是它的编码方式(这样的随机 ID 与用户选择的密码之间存在差异) .如果认为 Tomcat 生成的 session ID 不够安全,最好的选择可能是简单地提高 sessionIdLength 的值。范围。

话虽如此,如果您确实需要生成自己的 ID,那么自定义 org.apache.catalina.SessionIdGenerator(可能扩展 StandardSessionIdGenerator)将是一种方式去。

关于java - 更改 tomcat session ID 以包含大写和小写字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58315906/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com