2012-03-08 1 views
0

GAE의 대학용 소규모 프로젝트 (Java 사용)에서 사용자가 다른 사용자에게 메시지를 보낼 때 "메시지 서비스"형식을 구현합니다. Java 암호화 라이브러리를 사용하여 128 비트 AES로 암호화 된 다음 서버에 저장됩니다. 결과 키는 메시지를 읽을 수 있도록받는 사람이 입력해야합니다.Google 응용 프로그램 엔진에서 파일 업로드 및 암호화

이제 에 파일 업로드 (첨부) 기능이 포함됩니다. 따라서 사용자가 파일 (ANY 파일, jpg, gif, txt, pdf, doc, exe 등)을 첨부하면 먼저 암호화되어 저장됩니다. 나는 암호화/복호화가 기존의 코드에 의해 행해지도록 txt 파일 (일련의 문자들)과 같은 어떤 파일을 해석하고 싶다. (이것도 이해가 되니? 메모장에서 파일을 열고 파일을 일련의 문자로 볼 수 있기 때문에 이것을 생각하고 있습니다.) 나는 첨부 파일의 크기를 5-10 Mb와 같은 것으로 제한하고 싶습니다. 그러나 어떤 이유로 든 더 작은 크기 (< 1Mb)로만 처리 할 수 ​​있습니다.

그래서 사용자가 abc.exe라고하는 파일을 첨부하면이 파일을 txt 파일 abc.txt로 해석하고 메시지와 함께 암호화합니다. 그런 다음받는 사람이 올바른 키를 입력하면 메시지와 abc.txt를 해독하지만 abc.exe로 제공됩니다. (사용자에게 먼저 .txt 파일을 변환하도록 요청할 수는 있지만 어색 할 것입니다.)

이 작업을 수행 할 수 있습니까? 저는 웹 개발, 서블릿 및 GAE (이 중 하나를 사용하는 첫 번째 프로젝트)의 초보자입니다. 따라서 저와 함께 견뎌주십시오.

감사합니다 !!

+0

내 대답 Shitij에서 누락 된 것이 있습니까? 귀하의 질문에 후속 조치를 취하십시오. –

답변

1

글쎄, 간단한 asnwer 예입니다 : 그것은 할 수 있습니다. 정상적인 작업은 파일을 바이너리로 읽은 다음 데이터를 암호화 한 다음 64 진수로 인코딩하는 것입니다. 이어서, 수신 측베이스 (64)는 그것을 디코딩하고, 그것을 암호 해독하고 아마도 데이터를 기록한다. Base 64는 3 바이트마다 4 문자를 사용하여 데이터를 늘릴 것입니다 (끝 부분에 하나 또는 두 개의 패딩 바이트가 + 있습니다).

파일 이름과 같은 추가 정보가 필요하면 데이터에 대한 일종의 컨테이너를 만들어 암호화해야합니다. 한 가지 해결책은 ASN.1을 사용하는 것인데, 상대적으로 큰 학습 곡선이 있습니다.

예를 보려면 암호화 된 첨부 파일이있는 메일을 정의하는 SMIME 사양 및 CMS (암호화 메시지 구문)를 살펴보십시오. CMS가 널리 사용됩니다. CMS는 Bouncy Castle의 bcmail (또는 이후 버전) 패키지로 제공됩니다.

암호화를 사용하여 온라인 프로토콜을 만드는 경우 일종의 인증/무결성 보호가 필요합니다. 훌륭한 PKI 인프라가 필요할 수도 있습니다. 이 프로젝트는 꽤 큰 프로젝트입니다.

+0

답장을 보내 주셔서 감사합니다. owlstead! 너무 늦게 답변 해 주셔서 감사합니다. 제가 대학에 제출해야했던 프로젝트의 경우 첨부 파일 아이디어를 삭제했습니다. 왜냐하면 내가 가지고있는 시간에하기가 너무 어려워 보였기 때문입니다. 그래서 나는 이것을 잠시 잊었다. 하지만 몇 달 후에 프로젝트에 대한 후속 작업을하고 싶습니다. 마지막 게시글에서 당신이 말하는 내용에 대해 거의 알지 못합니다. P. 그래서 나는 이것들에 대해 읽고 몇 달 후에 여기로 돌아올 것이다. (나는 여름 훈련 중이다.) –

+0

OK, 나는 기다릴 것이다 : P. 조금 늦더라도 응답 해 주셔서 감사합니다. –

관련 문제