2011-04-25 3 views
0

데이터가 암호화되어 다른 페이지로 전송되어 디코딩되고 해석됩니다. 데이터가 System.Text.Encoding.Unicode.GetString()을 사용하여 유니 코드로 해시 된 다음 암호화되어 Base64 문자열로 인코딩되고 URL을 통해 전송 된 다음 수신 사이트에서 Base64에서 데이터를 가져 와서 다시 해독합니다. System.Text.Encoding.Unicode.GetBytes()를 사용하여 다시 바이트로 돌아갑니다.유니 코드가 인코딩 된 텍스트와 다르게 디코딩합니다.

그러나 나는 그것을 보내는 것과 같은 방식으로 바이트로 해석되지 않는 단일 문자를 얻고 있습니다. 그것은 " "과 동일하게 "나타납니다". 이 문자열은 바이트로 복호화되지만 다르게 평가됩니다.

[0]: 139 
[1]: 222 

하지만 디코딩

[0]: 253 
[1]: 255 

다른 모든 문자에 밖으로 제대로 변환됩니다 같이 인코딩 할 때이 문자가이 바이트로 인코딩됩니다 bytes-

는 유니 코드 문자는 두을 바이트 변환을 그대로 유지하면서 암호화합니다.

이 문자는 특별한 경우입니까? 이 같은 효과가있는 다른 문자가 있습니까? 암호화가 손상 되었습니까?

답변

2

이 경우 텍스트 인코딩을 사용하지 마십시오. 원래 데이터를 바이트 배열로 직접 암호화 한 다음이를 base64 문자열로 인코딩 한 다음 바이트 배열로 디코딩하고 원래 바이트를 해독합니다. 유일한 String은 base64 문자열입니다. 해독/해독 단계에서 중간 문자열을 사용하지 마십시오.

관련 문제