2013-12-10 15 views
1

웹 응용 프로그램에서 PBEWithMD5AndDES을 사용하여 쿼리 매개 변수를 암호화 한 다음 sun.misc.BASE64Encoder().encode()을 사용하여 인코딩합니다. 전체 URL 길이를 140 자 이상으로 만듭니다. 암호화를 변경하지 않고 방법이 있습니까 & 인코딩, 약 80 자까지 길이를 줄일 수 있습니까? 길이를 줄이기 위해 암호화 알고리즘과 인코딩을 변경해야하는 경우 보안을 염두에두고 사용해야합니까?쿼리 문자열 길이 줄이기

+0

사용중인 암호화 알고리즘을 알려 주시면 더 잘 도와 드리겠습니다. –

+0

새로운 길이가 이전 길이 * 1.33과 거의 같은 base64 인코딩 후에 출력 길이를 계산할 수 있습니다. 출력 길이를 줄이기 위해 더 큰 알파벳 (base85와 같은)으로 algos를 시도해야합니다. – mkrakhin

답변

2

Base64 인코딩에는 알려진 오버 헤드가 있으며 암호화에는 오버 헤드가 있습니다. 다른 인코딩 알고리즘으로 전환하면 오버 헤드가 줄어들어 암호화 알고리즘이 손상 될 수 있습니다.하지만 확실한 베팅을 볼 수는 없습니다. 문자를 추가 할 수 있지만 추가 데이터 요구 사항으로 인해이 문제가 다시 발생할 수 있습니다. 상대적으로 쉽게 개발할 수 : -
프로 당신이 그것을 암호화하기 전에

  1. 데이터를 압축 :

    나는 두 가지 옵션을 참조하십시오.
    단점 : 성능에 영향을 줄 수 있지만 크기를 충분히 줄이지 못할 수 있습니다.

  2. POST를 사용하고 쿼리 매개 변수 대신 응답 본문에 매개 변수를 전달하십시오.
    프로은 : 훨씬 더 많은 개발 시간이 필요할 수 있습니다, 모두 환경에서 가능하지 않을 수도 있습니다 (외부 요구 사항, 기술 문제 등 : 암호화 된 데이터가 서버 로그 (보안)에 기록되지 않습니다, 크기는 단점 "무제한"입니다)

기회가 주어진다면 # 2 번 옵션으로 갈 것입니다.

+0

감사합니다. 옵션 2는 제가 지금 갈 수있는 것이 아닙니다. 내가 그것을 빨리 할 수 ​​있으면 나는 첫번째 것을 시도 할 것이다. 쿼리 매개 변수는 어떻게 압축합니까? – yogsma

+0

이 대답을 확인하십시오 : http://stackoverflow.com/a/5934620/357360 또한 - 여기에 더 많은 문자열 관련이 또 다른 예제입니다 : http://www.coderanch.com/t/374637/java/java/Compressing-Decompressing-strings-Java – RonK

+0

고마워, 나는 그런 것들을 시도했지만 때로는 길이를 줄이며 때때로 길이를 늘린다. 매우 변동합니다. – yogsma

1

쿼리 매개 변수의 이름 길이를 줄일 수 있습니다. 어떤 유형의 인코딩을 사용해도 쿼리 길이가 늘어납니다.

그래서 나는 쿼리 기반 제출 대신 양식 제출을 사용할 것을 제안 할 것입니다. 또는 데이터를 제출하려는 조건이 표시되는 전체 시나리오를 게시하십시오.