0

有没有人使用 Java实现了mod_auth_tkt cookie 生成?

我被困在如何在 Java 中生成 iptstamp (可以在 PHP 中使用 pack 函数完成)和 hextimestamp 。

生成cookie的算法如下:

cookie := digest + hextimestamp + user_id + '!' + token_list + '!' + user_data

digest := MD5(digest0 + key)

digest0 := MD5(iptstamp + key + user_id + '\0' + token_list + '\0' + user_data)
  • iptstamp是一个 8 字节长的字节数组,字节 0-3 以网络字节顺序的二进制数填充客户端的 IP 地址,字节 4-7 以网络字节顺序的二进制数填充时间戳。

  • hextimestamp是 8 个字符长的十六进制数,表示 iptstamp 中使用的时间戳。

  • token_list是此用户的可选访问令牌列表,以逗号分隔。
    如果为特定区域设置了 TKTAuthToken,则检查此列表。

  • user_data是可选的

4

1 回答 1

1

只需将 IP 地址转换为 4 个字节并附加时间戳。

iptstamp = ip_chars + ts_chars

http://code.cmlenz.net/diva/changeset/173/branches http://www.mail-archive.com/modauthtkt-users@lists.sourceforge.net/msg00003.html

使用以下内容获取网络字节顺序。

ByteBuffer bb = ByteBuffer.allocate(4096);
bb.order(ByteOrder.BIG_ENDIAN);

网络订单短(Java)

于 2012-09-06T06:30:20.117 回答