2011-11-03 2 views
0

.jar 패키지 (Java + Swing) 내부에 일부 이미지를 번들링 할 때 사용자가 패키지에 액세스하지 못하도록하기 위해 내부의 JPG 파일을 보호하는 가장 좋은 방법은 무엇입니까? 그들 자신?자바 : .jar 패키지의 JPG 파일 암호화

+2

이미지가 응용 프로그램에 표시됩니까? 그렇다면 최종 사용자가 스크린 샷을 중단하는 것은 무엇입니까? 바이 바이 사진! 누군가 앱을 전달한 경우 리소스에 대한 액세스를 제한하려고 시도한 저에게 로봇을 올려서 모든 페이지/이미지를 살펴보고 스크린 샷을 찍었습니다. 디스크에 저장하십시오. 끝난. –

답변

-1

이미지의 바이트 표현을 가져 와서 다른 파일 확장명으로 저장하거나 javax.crypto 패키지로 암호화 할 수 있지만 필자는 그렇게 생각하지 않습니다.

+0

파일 확장자를 변경하면 어떤 영향이 있습니까? – CodesInChaos

+0

사용자가 열 수없는 .something 확장자로 변경할 수 있습니다. 일반 직렬화라고 생각하면 Image 객체를 이진 파일로 저장합니다.이 경우 파일을 구성하는 바이트는 같은 순서로 저장됩니다. 게다가 "실제"이미지는 이미지 파일 구조를 암호화하여 사용하는 것이 재미 있지 않다고 생각합니다. –

+3

일반적인 이미지 뷰어는 확장자에 관계없이 이미지를 열 수 있습니다. 그들은 마술 바이트를 사용하여 파일이 jpg 이미지임을 확인합니다. 예를 들어 irfanview로 이름이 바뀐 jpg 파일을 열면 잘못된 파일 확장자가있는 jpg이며 이름을 바꾸라고 알려줍니다. – CodesInChaos

2

JAR에 포함하기 전에 암호화 한 다음 앱에서 표시 (또는 다른 방법으로 사용)하기 전에 바로 암호화 해제 할 수 있습니다. 이것의 간단한 구현은 개인 키를 앱과 함께 묶을 것을 요구하며, 이는 '사용자'가 충분히 결정되면 기본적으로 암호화를 무효화합니다. 또는 앱이 시작될 때 호스팅 된 사이트에서 키를 다운로드 할 수 있습니다. 절대 실수가 아니므로 응용 프로그램의 성능을 끌어 올릴 수 있습니다.

또는 이미지를 임의의 프레임으로 분할하고 표시 전에 결합 할 수 있습니다. 기본적으로 데이터를 obsfucate.

솔직히 말해서 백만 가지 방법이 있습니다. 그러나 실제로는 어느 누구도 그럴 가치가 없으며 그 가치보다 문제가 많습니다. 결국 당신은 결국 이미지를 올바르게 표시 할 것입니까? 어떤 시점에서 '사용자'는 화면 잡기 만 할 수 있습니다.

당신이 저작권에 관심이 있다면 사진을 워터 마크하는 것이 좋습니다. 따라서 사진을 워터 마크하는 것이 좋습니다. 따라서 사진을 사용하는 사람을 발견하면 법적 소송을 제기 할 수 있습니다.