2012-12-04 3 views
0

의 문자 세트를 제외. JAVA Crypt API를 사용하여 쿼리 문자열 (호스트 이름 및 컨텍스트가 아님)을 암호화/해독하려고합니다. 우리는 어떤 종류의 문자열을 얻는 지 결코 알지 못합니다. 글쎄, 이것은 제대로 일어나고있다. 이 암호화가 완료되면, 나는이 상수 종결되지 않은 문자열을 던지는 실패지고있는 JS 기능이 URL을 전달해야합니다. 문제는 여기에암호화 및 암호 해독이 완료된 후 나는 몇 가지 문제에 직면하고있어 암호화/암호 해독

또한, 몇 가지 다른 문자가있는 초기 암호화가 발생되지 않기 때문에 / 문자 등으로합니다. 예 : +

또한 암호화 된 문자열에 줄 바꿈이 거의 표시되지 않습니다. 왜이 줄 바꿈? 암호화의 일부입니까? 이제이 문제를 만드는 문자를 알아 내고 싶습니다. 암호화 알고리즘에 이러한 문자 집합을 사용하지 말라고 말하고 싶습니다. 우리가 이것을 달성 할 수있는 방법이 있습니까?

+0

이것은 쿼리를 암호화하여 데이터베이스를 보호하는 이상하고 안전하지 않은 방법처럼 보인다. 질의의 수가 수정되면 서버 측에서 ASP/PHP/JSP ... 코드로 인코딩해야하며 클라이언트로 보내지 마십시오! – Robert

답변

0

나는 이것이 당신이 실제로 자바 스크립트의 사용을 위해이 문자열을 탈출해야 할 것 나에게 소리

상수 종결되지 않은 문자열을 던지는 실패지고있는 JS 기능이 URL을 전달해야합니다. 예 : Apache Commons StringEscapeUtils.escapeJavascript()을 참조하십시오.

난 당신이 암호 문자 대 문자를 제어 할 수있는 대단히 의심한다. 그것은 사용 된 알고리즘에 의존 할 것이지만 데이터 덩어리를 보면서 데이터 블록을 생성 할 것입니다. 그것은 결국 암호화입니다.

+0

나는이 암호화 논리를 작성해야만하는 상태에 있습니다. 변환 된 url은 JS 함수에 전달되거나'href' 등의 일부로 사용될 수 있습니다. 결론은 암호화 된 url (querystring)이 모든 곳에 적합해야한다는 것입니다. – Sriram

+0

참으로. 당신이 실행 몇 후 (이 경우, 자바 스크립트) 대상 –

2

Java 및 Crypt API에 익숙하지 않지만 인코딩 문제가있는 것으로 보입니다. 암호화 출력은 바이너리이기 때문에 API로 인코딩 할 가능성이 있으며 기본적으로 base64 인코딩을 사용하는 것으로 보입니다. 그래서 API 사양에서 인코딩을 변경/설정하고 다른 인코딩을 사용하는 방법을 살펴 보겠습니다. 마녀.

API의 암호화 된 출력을 가져 와서 base64 디코더 (Linux base64 도구 또는 온라인 디코더)를 통해 전달함으로써 가정을 테스트 할 수 있습니다.

+0

에 적절하게 탈출 할 필요가 그래서 당신은 자바 스크립트, XML 다르게 등을 탈출해야합니다,이 때문에 줄 바꿈으로 일어나고있는 것을 발견했다. 이 [ref] (http://www.motobit.com/util/base64-decoder-encoder.asp)에서 필자는 라인 당 최대 문자 수 *라는 옵션이 있음을 확인했습니다. 줄당 문자 수는 얼마입니까? – Sriram

+0

Base64는 SMTP와 같은 프로토콜에서 많이 사용되기 때문에 한 줄당 문자 수가 제한적이라고 생각합니다 – davka

+0

어쨌든 이것을 피할 수 있습니까? 한 줄에 글자 수를 제한하지 않는 API를 알려주는 방법은 무엇입니까? – Sriram