나는 사용자가 클릭 할 수 있도록 암호화 된 링크를 보내는 전자 메일 확인 시스템을 보유하고 있습니다. 한 사용자가 작동하지 않는다고 말하면서 설명 할 수없는 매우 이상한 오류를 발견했습니다.암호 작성기 URL이 깨졌습니다.
이 이것은 Tomcat 서버에
http://remotehost/cypher.action?cypher=TphMFuv%2FwcsgLThnU5cWInJFaZPMHeDFFL%2FRRPbbV70%3D
내 응용 프로그램이 실행되는 struts2 작동하지 않는 원격 URL입니다
http://localhost/cypher.action?cypher=TphMFuv%2FwcsgLThnU5cWInJFaZPMHeDFFL%2FRRPbbV70%3D
잘 작동 로컬 URL하지만 난 그렇게하지 그게 중요하다고 생각해. 원격 요청에서 변수 cypher는 null입니다. 이유를 이해할 수 없습니다.
나쁜 기록이 실제 문제가 숨어 있음을 밝혀
크리스
UPDATE 동일한 코드를
건배
를 실행합니다. 문제는 서버에 그것은 보인다그것이라고 그 서버에서 발생하는 로컬이 아닌
UPDATE 이유를 알아 이제 않고 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에서 인코딩 차이가 있습니까?
'remotehost' 주소가 실제로 서버를 가리 킵니까? – bdares
예. 내 Tomcat 서버로 직접 이동합니다. 그것은 대다수의 cyphers에서 작동합니다. 문제는 특수 문자가있는 경우입니다. 9TOfCNEeycQM3tAsIyRtox8fAlLNYu + o는 +로 인해 작동하지 않는 TOfCNEeycQM3tAsIyRtox8fAlLNYu % 2Bo로 인코딩됩니다. 왜 로컬에서 작동하지만 변수 cypher가 원격 시스템에서 null인지 이해할 수 없습니다. – Kris
전송 된 경우 null g6EIaeFZHmUWTBqUUzeADQeZGcDaeWms를 반환하는 또 다른 예입니다. 나는 약간의 등장 인물을 제거하여 조금 연주했다. 이것은 g6EIaeFZHmUWTBqUUzeADQeZGcDae에서 작동하지만 null g6EIaeFZHmUWTBqUUzeADQeZGcDaeW로 반환됩니다.왜 도대체 'W'가 효과가 있을까요? – Kris