2012-12-15 3 views
0

암호화 된 암호를 json과 쿼리 문자열을 통해 전달합니다. 예를 들어 패스워드는 다음과 같습니다 : V0VuDF9ITK+A744HD=JSON을 통해 비 숫자/문자로 문자열 전달

json을 통해 문자열을 전달하면 JSON.stringify을 사용하여 문자열을 문자열 화하여 서버에서 사용할 수 있습니다. 내가 서버에서 암호를 사용하려고하면 새 암호는 V0VuDF9ITK A744HD= (중간에 공간을 알)을 할 수 있도록

var request = sb.serverRequest('changePassword', JSON.stringify({username: username, password: credentialsInput.value, original: password})); 
request.done(function() { 
    var response = JSON.parse(request.responseText); 
    if(response.success) { 
     console.log('password changed'); 
    } else { 
     setInstructions('That didn\'t work. Please try again.'); 
    } 
    credentialsInput.value = ''; //Clear input 
}); 

그러나, 그것은 공백으로 +을 교체했다? Java에서 문자열을 미리 구문 분석하여 통과 한 실제 문자열에 아닌 문자와 숫자를 포함 할 수 있습니까? 자바 스크립트에 문자열을 전달하는 것처럼 보이지만 가능한 경우 java에서 전처리하는 것을 선호합니다. 왜냐하면 querystring을 통해 문자열을 전달할 수도 있기 때문입니다.

Java에서 base64 인코더를 사용하여 암호화하므로 자바 스크립트에서 이스케이프 문자를 사용할 때 고려해야 할 다른 가능성이 있는지 확실하지 않습니다. =이 잘 전달 된 것 같습니다. 이 인코딩 유형에서 문제가 될 수있는 다른 문자가 있습니까?

P. 나는 실제로 서버에서 처리되는 자바 스크립트에서 암호화를 수행하지 않지만 서버 측과 비교할 필요가 있기 때문에 자바 스크립트에서 암호화 된 암호가 필요한이 특정 인스턴스에서 ... 나는 지루한 세부. 나는이 암호화된 암호를 querystring을 통해 전달할 것이며 + 또는 =에 의해 오류가 있다고 가정합니다. 쿼리 스트링 (querystring)에서도 이와 비슷한 문자열을 어떻게 전달할 수 있습니까?

업데이트 : 암호를 암호화하는 데 사용하는 인코딩 방법은 다음과 같습니다. 나는 그것이 base64 일 뿐이라고 착각했을지도 모른다. 이 방법이 암호를 안전하게 보호 할 수 있습니까?

public static synchronized String encrypt(String plainText) throws RuntimeException { 
    MessageDigest md = null; 

    try{ 
     md = MessageDigest.getInstance("SHA"); 
    }catch(NoSuchAlgorithmException e){ 
     throw new RuntimeException(e.getMessage()); 
    } 

    try{ 
     md.update(plainText.getBytes("UTF-8")); 
    }catch(UnsupportedEncodingException e){ 
     throw new RuntimeException(e.getMessage()); 
    } 

    byte raw[] = md.digest(); 
    String hash = (new BASE64Encoder().encode(raw)); 
    return hash; 
} 
+0

Base64 인코딩은 암호화되지 않습니다 사용합니다. 이것은 일반 텍스트 암호를 전송하는 것보다 안전하지 않습니다. –

+0

대신 무엇을 사용해야합니까? – ryandlf

+0

HTTPS를 사용하여 – Malvolio

답변

1

는 URL을 통해 전달하는 문자열을 안전하게 encodeURIComponent(your_string_here)

+0

문자열이 쿼리 문자열을 통해 javascript로 전달되는시기는 어떻습니까? – ryandlf

+0

'decodeURIComponent', 또 뭐야? –

+0

좋습니다. 그래서 url이 java에서 javascript로 전달 될 때. 문자열에 + 및 = 등이있는 경우 querystring에서 값을 가져 오는 데 문제가 없습니까? URL이 변경된다고합시다. pass = A87DF + 7RU7 = user = foo. – ryandlf

관련 문제