새 레코드의 암호가 비어 있지 않은 것이 하나의 빈 공간이었습니다. 그래서 가장 먼저 생각한 것은 Trim()
에 암호를로드하거나 저장하는 곳을 호출하는 것이므로 더 이상 빈 공간 문제가 발생하지 않습니다. 하지만 할 일이 잘못되었는지 아닌지에 대한 의견을 듣고 싶었습니다.비밀번호 자르기가 잘못 되었습니까?
답변
암호를 일반 텍스트로 저장하면 안됩니다.
이 작업을 정교하게 수행하려면 PBKDF2, bcrypt 또는 scrypt (소금 포함)를 적당한 작업량으로 사용하십시오. 그렇다면이 같은 "문제"가 없을 것입니다. – Kitsune
사실,하지만 질문에 대답하지 않습니다. –
댓글이어야합니다. –
공백은 암호의 유효한 문자입니다. 그래서 그것을 자르면 안됩니다.
암호 저장을 위해 'String'클래스 대신 SecureString을 사용해야합니다.
Google은 암호를 삭제합니다 ... 잘못 되었든 아니든 – DarkWanderer
동의하지만 널리 사용되는 표준은 아닙니다. 비밀 번호가 아닌 공간에 의존 할 수는 없습니다.일부 인증 시스템에서는이를 허용하지만 일부는 허용하지 않습니다. http://stackoverflow.com/questions/5475071/should-whitespace-characters-be-allowed-in-a-password – Tilak
저장되는 암호가 입력 한 암호와 다른 것을 사용자에게 알리지 않기 때문에 잘못된 것입니다. String.IsNullOrWhiteSpace을 사용하여 서버 쪽 검사를 수행 할 수 있으며 다른 대답은 일반 텍스트로 저장해서는 안됩니다.
암호 유효성 검사에 최소 글자 수 제한이나 유효성 검사를 지정하고 자르지 않는 것이 좋습니다.
어쨌든 짧은 암호는 허용하지 않는 것이 좋습니다.
또한 내 경험에 의하면 & 암호 뒤에 오는 공백은 거의 항상 사용자가 의도하지 않습니다. 그러나 암호 입력을 두 번해야하는 경우 사용자가 실수로 의도 한 암호를 두 번 입력하지 않을 것입니다. 단, 잘라 내기/붙여 넣기를 사용하지 않는 한 실수로이 암호를 두 번 입력 할 가능성은 없습니다. 그러나 이것은 일반적인 관행이기 때문에, 나는 항상 패스워드에서 선행/후행 공백을 다듬습니다. 내부 공백을 유지해야합니다.
는
이 다른 트리밍 나쁜 말을 읽었 데 ADDED 나는 아직도 그들이 잘못 말한다. 언제나 항상 패드를 다듬어 사용하면 패스워드가 항상 작동합니다 - 저장된 패스워드가 정확히 일치하지 않는다는 것을 알지 못합니다 - 물론 단방향 해쉬 인 "패스워드"는 절대로 저장해서는 안됩니다 그 결과 암호가 어쨌든 정확한 해시 값에 해싱되는지 여부를 알 수있는 방법을 실제로 알고 있습니다.올바른 동작 (적어도 모범 사례 중 하나 이상)은 암호를 암호화 한 다음 해시를 시도하는 것입니다. 가장 단순한 암호조차도 간단한 공백이라도 암호화하면 비 공백 문자열이 생성됩니다.
public static string Hash(this string text)
{
HashAlgorithm algorithm = algorithm = MD5.Create(); ;
// Adding something (salt) to text to make it harder to guess
text += "some-salt";
//return algorithm.ComputeHash(text.ToBytes()).GetString().ToBase64();
return Encoding.UTF8.GetString(algorithm.ComputeHash(Encoding.UTF8.GetBytes(text)));
}
전화 공백에이 기능을, 그 결과는 다음과 같습니다 :
여기에 있다고 할 수있는 간단한 코드입니다
var result = " ".Hash();
// Xd�m���SJ�l|r�Z*
- 1. 비밀번호 재설정 코드가 잘못 되었습니까?
- 2. 표면적보기가 어디서 잘못 되었습니까
- 3. 참조 차원이 잘못 되었습니까?
- 4. __VSFINDRESULT의 값이 잘못 되었습니까?
- 5. 근처에 구문이 잘못 되었습니까? |
- 6. 어디에서 잘못 되었습니까?
- 7. org.objectweb.asm.commons.LocalVariablesSorter가 잘못 최적화 되었습니까?
- 8. NSImage 크기가 잘못 되었습니까?
- 9. 클래스 캐스팅이 잘못 되었습니까?
- 10. 조명이 왜 잘못 되었습니까?
- 11. HttpClient 코드가 잘못 되었습니까?
- 12. 계속 진술이 잘못 되었습니까?
- 13. nokogiri : xpath가 잘못 되었습니까?
- 14. 재산의 사용이 잘못 되었습니까?
- 15. 함수 별칭이 잘못 되었습니까?
- 16. 이 방법이 잘못 되었습니까?
- 17. 그라데이션 설정이 잘못 되었습니까?
- 18. 구문이 잘못 되었습니까?
- 19. 페이지가 잘못 구성 되었습니까?
- 20. MassTransitStateMachine 일정이 잘못 되었습니까?
- 21. RGB 색상이 잘못 되었습니까?
- 22. CGAffineTransform의 문서가 잘못 되었습니까?
- 23. 코드에서 무엇이 잘못 되었습니까?
- 24. 왜이 방법이 잘못 되었습니까?
- 25. DES 예가 잘못 되었습니까?
- 26. 과제가 잘못 되었습니까?
- 27. CSS 그룹화가 잘못 되었습니까?
- 28. 간격이 잘못 되었습니까?
- 29. Elif가 잘못 되었습니까?
- 30. Capistrano 설정이 잘못 되었습니까?
가 어떻게 트림 경우 자신의 암호를 알고 가정 사용자 그의 그가 의도적으로 거기에 넣은 결말 공간? –
사람들은 처음 또는 끝 부분에 공백이있는 암호를 가지고 있으므로 트리밍 할 필요가 없으며 계획 텍스트에 암호도 저장하지 마십시오. – Habib
재개를 위해 투표합니다. OP가 의견을 물을지라도,이 질문은 실제로 모범 사례에 관한 것입니다. –