gpt4 book ai didi

java - 编码密码在 URL 中损坏

转载 作者:行者123 更新时间:2023-11-28 23:47:31 26 4
gpt4 key购买 nike

我有一个电子邮件验证系统,它会发送一个加密链接供用户点击。我有一个用户告诉我它不工作,我发现了一个我无法解释的非常奇怪的错误。

这是一个工作正常的本地 URL

http://localhost/cypher.action?cypher=TphMFuv%2FwcsgLThnU5cWInJFaZPMHeDFFL%2FRRPbbV70%3D

这是不起作用的远程 URL

http://remotehost/cypher.action?cypher=TphMFuv%2FwcsgLThnU5cWInJFaZPMHeDFFL%2FRRPbbV70%3D

我的应用程序在 tomcat 服务器上运行 struts2,但我认为这无关紧要。在远程请求中,变量密码为空。我不明白为什么。它运行完全相同的代码

干杯

克里斯

更新

事实证明,错误的日志记录隐藏了真正的问题。问题是在服务器上出现 BadPaddingException

javax.crypto.BadPaddingException: Given final block not properly padded
at com.sun.crypto.provider.SunJCE_f.b(DashoA13*..)
at com.sun.crypto.provider.SunJCE_f.b(DashoA13*..)
at com.sun.crypto.provider.DESCipher.engineDoFinal(DashoA13*..)
at javax.crypto.Cipher.doFinal(DashoA13*..)
at service.DesEncrypterService.decrypt(DesEncrypterService.java:80)
at action.LoginAction.cypherLogin(LoginAction.java:93)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

现在找出为什么这种情况发生在服务器上而不是本地

更新

这似乎与此人遇到的问题类似 Exception: "Given final block not properly padded" in Linux, but it works in Windows

Linux 上的一些编码差异?

最佳答案

你的 key 在两台机器上是不同的。您需要跟踪两台机器上的关键处理,以便查明产生差异的位置。始终检查字节到字节的匹配;字符匹配可能具有欺骗性。例如,行尾在不同系统之间可能存在无形差异。

首先检查传输后收到的内容是否完全发送的内容。然后在序列化键/参数的每一个处理之后将字节转储放入日志中。在主场和客场机器上都这样做并进行比较。这将查明从“两台机器上相同”到“机器之间不同”的变化发生的位置。那应该查明发生问题的方法或代码部分。重复那段代码中的字节转储,直到您将问题隔离开来。同样,您将需要在两台机器上进行转储,以便您拥有来自家用机器的已知目标以进行比较。

关于java - 编码密码在 URL 中损坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12524075/

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