, 당신은 당신에게 aren't echoing the password to the screen를 확인해야합니다. 그러나 QLineEdit이 전체 암호를 저장하지 못하게하는 것은 아마도 안전하지 않을 수 있습니다.
키 입력 명령을 무시하고 들어오는 각 문자를 암호화 할 수 있습니다. 그러나 캐릭터 암호화 당 적어도 오늘은 적어도 A=E
형태로 이루어지지 않습니다.
추가 문자가 들어올 때 문자열의 점진적 해시를 수행 할 수 있지만 백 스페이스를 사용할 수 없기 때문에 사용자가 암호 입력을 시도한 횟수는 1 회입니다. 실수로 손가락이 끼어서 (예 : f
대신 g
을 입력하면 실수 한 UI가 아닌 전체 비밀번호를 지우고 다시 시작해야 함).
코드를 편집하는 사용자의 걱정과 관련하여 사용자가 입력 한 암호와 해당 암호를 캡처 한 사람 사이에서 암호를 캡처하는 경우 여기에서 편집증을받습니다. 코드를 보낸 후에는 어느 정도까지 제어 할 수 있습니다. 관련 부분에 적절한 MD5 해시 코드를 배포 할 수 있으며 런타임에 코드가 변경되지 않았는지 확인할 수 있습니다.
누군가 그 프로그램에 임의의 코드를 주입 할 수있는 능력이 있다면, 더 큰 문제가 있습니다. 나는 당신의 프로그램이 안전하지 않다는 말은 아니지만 누군가가 악의적 인 사람이 코드를 가진 컴퓨터에 접근 할 수 있다면 하드웨어 또는 소프트웨어 키로거를 쉽게 삽입 할 수있다.
코드를 가능한 한 안전하게 작성하고, somepoint에서 비밀번호가 일반 텍스트로 어딘가에 저장되고 사용 가능한 첫 번째 기회에 인코딩되도록합니다. 예 :
import mySecureLibrary
password = mySecureLibrary.saltAndHash(self.ui.passwordField.text())
self.ui.passwordField.setText("HAHA, no password for you")
나는 소스 코드 또는 전체 패키지에서 체크섬을 계산 한 다음 체크섬을 공개로 만들 것이다. 그런 식으로 모든 사용자가 코드가 변경되지 않았는지 확인할 수있는 멋진 도구 (자체 검사가 필요함)가 있습니다. 하지만 런타임에 변경 될 수 있습니다. – Trilarion