로고 이미지 파일 이름, 데이터베이스 이름, 데이터베이스 사용자 및 데이터베이스 암호와 같은 내 응용 프로그램의 모든 정보를 저장하는 Java의 속성 파일이 있습니다.
속성 파일에 암호화 된 암호를 저장할 수 있습니다.
그러나 키 또는 암호는 디 컴파일러를 사용하여 jar에서 읽을 수 있습니다.
db 패스를 속성 파일에 안전하게 저장하는 방법이 있습니까?임베디드 암호를 보호
답변
여러 가지 방법으로 관리 할 수 있습니다. 응용 프로그램이 시작될 때 사용자가 키 스토어에 대한 암호를 제공하게하는 방법을 이해할 수 있다면 키를 사용하여 모든 값을 암호화하고이 키를 키 스토어에 저장하는 것이 가장 적절합니다. 키 스토어에 대한 명령 행 인터페이스는 keytool을 사용하는 것입니다. 그러나 JSE에는 프로그래밍 방식으로 키 스토어에 액세스하는 API도 있습니다.
시작할 때 키 저장소에 암호를 수동으로 제공하지 못하는 경우 (웹 응용 프로그램과 같이) 키를 난독 화시킬 수있는 매우 복잡한 난독 화 루틴을 작성하는 한 가지 방법이 있습니다 속성 파일에도 저장하십시오. 기억해야 할 중요한 사항은 난독 화 및 난독 화 논리가 다중 계층 (스크램블링, 인코딩, 가짜 문자의 도입 등을 수반 할 수 있음)이어야하며 응용 프로그램의 다른 클래스에서 숨길 수있는 하나 이상의 키가 있어야한다는 것입니다 비 직관적 인 이름을 사용합니다. 이것은 디 컴파일러와 상당한 시간과 지능을 가진 사람이 여전히 그 문제를 해결할 수 있기 때문에 완전히 안전한 메커니즘은 아니지만 네이티브 (예 : 비 호환 용이하지 않은) 코드로 침입 할 것을 요구하지 않는 유일한 사람입니다 .
아니요. 암호화하더라도 누군가 암호 해독 코드를 디 컴파일하면됩니다.
암호 (DB 암호 또는 키 암호)에 대해 별도의 특성 파일 (jar 외부)을 작성하고 해당 특성 파일을 분배에 포함시키지 않을 수 있습니다. 또는 서버가 스푸핑이 필요할 수 있도록 특정 컴퓨터의 로그인 만 수락하도록 만들 수도 있습니다.
암호의 SHA1 해시를 속성 파일에 저장합니다. 그런 다음 사용자 암호의 유효성을 검사 할 때 로그인 시도를 해시하고 두 해시가 일치하는지 확인하십시오.
이것은 몇 바이트를 해시 할 코드입니다. getBytes()
메서드를 사용하면 String에서 바이트를 쉽게 찾을 수 있습니다. 설명 된대로 암호를 암호화하는 것 외에도
/**
* Returns the hash value of the given chars
*
* Uses the default hash algorithm described above
*
* @param in
* the byte[] to hash
* @return a byte[] of hashed values
*/
public static byte[] getHashedBytes(byte[] in)
{
MessageDigest msg;
try
{
msg = MessageDigest.getInstance(hashingAlgorithmUsed);
}
catch (NoSuchAlgorithmException e)
{
throw new AssertionError("Someone chose to use a hashing algorithm that doesn't exist. Epic fail, go change it in the Util file. SHA(1) or MD5");
}
msg.update(in);
return msg.digest();
}
좋은 답변이지만 질문에는 만족하지 않습니다. –
나는 질문을 완전히 이해하지 못한다고 생각한다. – jjnguy
그는 응용 프로그램이 데이터베이스에 연결하는 데 사용할 사용자 이름과 암호를 저장하려고합니다.그래서 그는 데이터베이스에 연결하기 전에이를 다시 일반 텍스트로 변환 할 수 있어야합니다. –
위의 개별 특성에 어떤 암호가 가장 잠긴 권한 가능한이 파일을 제공하려고 파일 및 배포를 입었다.
예를 들어, Application Server가 Linux/Unix에서 root
으로 실행되는 경우 root
이 소유 한 암호 등록 정보 파일을 400/-r--------
권한으로 만드십시오.
물론 앱이 https를 통해 서버에 접속하여 비밀번호를 다운로드하지 못했습니까?
- 1. ActiveRecord를 PostgreSQL에 원격으로 연결하고 DB 암호를 보호 할 수 있습니까?
- 2. 암호로 보호 된 ssh 키 - 한번만 암호를 묻습니다.
- 3. 사용자 이름 및 암호를 보호 된 폴더/사이트에 게시
- 4. 암호 보호
- 5. Word 2007 암호 보호
- 6. 구독 보호 콘텐츠?
- 7. 스칼라와 임베디드 그루비 임베디드
- 8. 안드로이드에서 이미지 암호 보호
- 9. Worksheet.Protect 암호를 적용하지 않는다
- 10. 보호 엑셀 작업 책
- 11. Ruby 코드 보호
- 12. SAS 코드의 암호 보호
- 13. 소스 코드 보호 섹션
- 14. PHP - 솔루션 - 파일 암호 보호
- 15. HTTPS를 통해 암호를 보내기 전에 암호를 해싱해야합니까?
- 16. 암호를 암호화하고 암호를 해독하기위한 키를 저장하는 위치
- 17. RoR - 비밀번호로 보호 된 모델
- 18. 암호로 보호 된 웹 서비스
- 19. 어쨌든 EFS 파일의 암호를 해독 하시겠습니까?
- 20. 비밀번호로 보호 된 웹 페이지로드
- 21. C# | 프로그램에 비밀번호 보호 추가하기
- 22. 암호로 보호 된 폴더 검사
- 23. 보호 된 지역에 고유 암호를 판매하고 생성하는 쉬운 스크립트는 무엇입니까? 여기
- 24. 보호 카운터보기는
- 25. 페이지 보호
- 26. csrf 보호
- 27. 자녀 보호
- 28. PHP SOAP 서버가 로그인/패스워드로 보호 됨
- 29. 추천 URL에서 사용자 정보 보호
- 30. 데이터베이스에 저장된 중요한 암호를 보호하는 방법
누군가에게 열쇠와 자물쇠를 제공하면 열쇠를 복제하고 열쇠를주지 않고 자물쇠에 액세스 할 수 있습니다. 열쇠를 제공하지 않는 한 열쇠를 얻을 수 없습니다. 이는 DRM의 근본적인 결함이기도합니다. –