2016-07-19 4 views
0

자바로 Android 앱을 프로그래밍하고 있으며 앱의 일부가 내 이메일 계정의 이메일을 다른 이메일 계정으로 보냅니다. 나는 이것을 달성하기 위해 JavaMail을 사용하고있다.사용자가 Java에서 변수를 읽지 못하게하려면 어떻게해야합니까?

보내는 전자 메일 계정의 암호가 내 프로그램의 변수에 하드 코드 된 것을 제외하고는 모두 잘 작동합니다. 사용자가이 변수에 액세스하지 못하도록하고 싶습니다. 암호화해야합니까? 그 일을 어떻게 하죠? JavaMail을 구성하여 장치 어디에나 암호를 저장할 필요가없는 방법이 있습니까?

이메일과 비밀번호를 저장하는 데 사용하는 코드는 다음과 같습니다. 그것은 단지 자신의 클래스에 정적 변수 :

public class Config { 
     public static final String EMAIL ="[email]@gmail.com"; 
     public static final String PASSWORD ="[password]"; 
} 

계정에서 이중 인증을 활성화하려고 시도했지만이 경우 JavaMail이 실패합니다.

나는이 앱의 세부 사항을보고 싶지 않지만, 고향 도시 밖에있는 누구도이 앱을 다운로드 할 이유가 없습니다. 그것은 전적으로 지역적인 목적을위한 것입니다. 그것은 다른 어느 곳에서도 사용하지 못했던 암호이며,이 응용 프로그램을 위해 특별히 만든 전자 메일 계정이므로 여기서 큰 위험을 감수하고 있지 않습니다. 나는 여전히 가능한 한 안전 할 것입니다.

+0

전자 메일이어야합니까? 예를 들어 Google 스프레드 시트에 게시 할 수 있습니다. 또는 리소스가있는 경우 전용 웹 서버가 있어야합니다. – BCartolo

+0

특정 이메일 주소로 수신해야합니다. 이 상황에서는 웹 서버가 가능하지 않을 수도 있지만 실행 방법은 중요하지 않습니다. 내 활동의 맥락에서 Google 양식을 사용할 수 있습니까? 나는 그것을 연구했지만 아직 방법을 찾지 못했습니다. – austin

+0

Google 스프레드 시트에서 설문 조사를 만들고 여기에 모든 데이터를 게시 할 수 있습니다. 그러면 가서 답을 볼 수 있습니다. 누군가 게시물을 올릴 때마다 이메일로 알림을받을 수도 있습니다. – BCartolo

답변

5

암호를 프로그램에 하드 코딩하면 원하는 경우 누군가가 프로그램을 내 보내지 못하게 할 수 없습니다.

앱에서 이메일을 보내는 대신 앱이 연결할 수있는 웹 서버를 설정할 수 있습니다. 이메일을 보내는 것이 필수라면이 웹 서버에서 이메일을 보낼 수 있습니다. 이렇게하면 자격 증명이 모든 사람에게 보내는 앱보다는 개인 서버에 있습니다.

+0

아마도 이것이 최선의 선택 일 것입니다. 내장 된 모든 자격 증명으로 공격 할 수있는 간단한 PHP 스크립트를 사용하십시오. 보호되는 Voila. – RayfenWindspear

-1

은 공용 변수 대신 개인 변수를 사용합니다. 이것을 참조하십시오 Java Access Modifiers

+1

액세스 한정자는 보안을 제공하지 않습니다. 그것들은 개발자를위한 도구 일뿐입니다. 개인 변수에 있기 때문에 데이터가 안전하다고 가정하지 마십시오. – puhlen

관련 문제