>  기사  >  비밀번호를 사용하여 AndroidKeyStore에 키를 안전하게 저장하는 방법은 무엇입니까?

비밀번호를 사용하여 AndroidKeyStore에 키를 안전하게 저장하는 방법은 무엇입니까?

WBOY
WBOY앞으로
2024-02-10 19:15:08484검색

php 편집기 Baicao는 비밀번호를 사용하여 AndroidKeyStore에 키를 안전하게 저장하는 방법에 대한 가이드를 제공합니다. 모바일 앱 개발에서는 키 보안을 보호하는 것이 중요합니다. AndroidKeyStore는 악성 애플리케이션이나 공격자가 키를 얻을 수 없도록 키를 저장하는 안정적인 방법을 제공합니다. 이 가이드에서는 비밀번호를 사용하여 키를 암호화하고 이를 AndroidKeyStore에 안전하게 저장하여 최고 수준의 보안을 제공하는 방법을 설명합니다. 초보자이든 숙련된 개발자이든 이 단계별 가이드를 쉽게 따라하면 이 목표를 달성할 수 있습니다. 시작하자!

질문 내용

사용자가 비밀번호를 저장할 수 있는 애플리케이션을 만들려고 합니다. 이제 사용자는 두 가지 방법으로 비밀번호를 암호화할 수 있습니다. 첫 번째는 생체 인식이고 다른 하나는 비밀번호입니다

AndroidKeyStore에서 키를 생성하고 키 생성 시 setUsetAuthenticationRequired(true) 来实现 biometrics암호화를 설정한 다음 BiometricsManager를 사용하여 비밀번호를 인증할 수 있었습니다.

하지만 비밀번호 1을 어떻게 구현하는지 잘 모르겠습니다. PBE 암호화를 찾아보았지만 Android 문서에는 그다지 많은 내용이 없습니다. 이 상황에 대한 가장 안전하고 최선의 해결책은 무엇입니까? 동일한 링크가 있으면 감사하겠습니다 :)

(참고: PBE 암호화를 사용하고 암호화된 데이터(여러 사용자 이름 및 비밀번호)를 RoomDB에 저장하는 경우 어떻게 해야 하나요? 다음에 앱을 실행할 때 비밀번호가 맞는지, 데이터베이스에 복호화하고 테스트할 내용이 없는지 확인합니다)

또한 키를 생성한 다음 키를 항목으로 저장하고 https://developer.android.com/reference/java/security/KeyStore.PasswordProtection을 사용하여 항목을 보호하는 방법도 찾았습니다. 이것이 충분히 안전한 솔루션인지 또는 더 나은 솔루션이 있는지 알려주십시오.

감사합니다!

해결 방법

Room에 비밀번호를 저장하려면 해시 함수를 실행한 다음 비밀번호의 해시를 저장해야 합니다. 비밀번호의 길이에 관계없이 해시 값은 고정된 크기입니다.

입력된 비밀번호와 데이터베이스에 저장된 비밀번호를 비교하려면 입력을 해시하고 데이터베이스에 저장된 해시 값과 비교합니다. 동일한 문자열에 해시 함수를 적용하면 동일한 결과를 얻을 수 있기 때문입니다. 하나 이상의 기호가 잘못된 경우 생성된 해시는 완전히 달라집니다.

이것을 확인하고 PBKDF2 알고리즘을 사용해 보세요. 해시 함수를 선택하는 방법과 사용하지 말아야 할 항목에 대한 자세한 내용은 여기

에서 확인할 수 있습니다.

위 내용은 비밀번호를 사용하여 AndroidKeyStore에 키를 안전하게 저장하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제