2013-02-21 2 views
1

데이터베이스에 저장할 때 암호가 암호화된다는 사용자 암호 필드가 있습니다.C# 암호화 된 암호

또한 사용자를 편집하면 암호 필드가 해시됩니다.

그러나 해시 필드는 암호화 길이로 인해 수백 문자 길이입니다.

대신 8자를 표시하는 방법이 있습니까?

저장 후 표시되는 것이 이상적이지 않습니다.

encrypt

+1

비밀번호가 표시됩니까? 사용자에게? –

+1

무엇의 8 문자 만? –

+0

암호 필드를 변경하여 변경할 수 있으며, 단지 8 개의 해시 아이콘 만 표시 할 수 있습니다. –

답변

1

당신이 암호를 변경하고 ********* 같은 편집 사용자 암호 필드 쇼 뭔가 할 수있는 별도의 옵션을 할 수 없습니다. 그리고 사용자가 편집하는 동안 새로운을 암호 필드에 입력 한 다음 암호화를 통해 다시 이동하십시오.

+0

그가 암호의 해시만을 저장하고 있다면 (실제 응용 프로그램에 있어야 할 것들이 있습니다.) 해시에서 암호 해독 할 수있는 방법이 없습니다 – Woodman

+0

@Woodman 감사합니다. – Sinatr

0

나를 걱정하는 몇 가지 사항이 있습니다. 그 중 하나는 댓글의 RB 메모에 암호화 및 해싱이라는 용어를 혼용하여 사용한다는 것입니다. 그 차이는 매우 중요합니다. 간단히 말해,

  • 암호화 역전 할 수있는 방법으로 할 때 애매한 일이다. 예를 들어 나쁜 예를 들어 보자면, 문자 A를 숫자 1로, 문자 B를 숫자 2로 대체하는 것입니다. "안녕하세요"는 "7 5 12 12 15"가 될 것입니다. 키가없는 사람에게는 아무런 의미가 없지만, 어쨌든 알고 있다면 뒤집을 수 있습니다.
  • 해싱은 입력을 가져 와서 겉으로보기에는 의미가없는 고유 한 출력으로 변환하는 일방적인 수학 함수입니다. 간단히 말해서 해시에 포함되는 모든 고유 한 정보가 고유 한 값으로 나올 것이라고 가정 할 수 있습니다. 그러나 고유 한 결과가 나오면이를 역전시키고 입력 내용을 발견 할 방법이 없습니다. 나는 사용자가 가입 요청 된 웹 사이트를 만드는 경우

, 나는 그들이 선택하는 암호를 취할 것입니다, 위의에 더 확장하려면 내가 그 암호를 해시 한 후 안전한 곳에 그 암호를 저장하는 것 . 그런 다음 사용자가 실제로 입력 한 암호를 버립니다. 그 사용자가 다음 번에 내 사이트에 왔을 때 암호를 입력하면 다시 해시 할 수 있습니다. 이전에 저장 한 내용과 비교하여 해시 출력을 확인하고 동일한 단어가 항상 동일한 출력을 생성하므로 두 개 일치하는 해시 나는 내 사이트에 대한 액세스 권한을 부여합니다.

소금물 암호 (more on which can be found at Wikipedia)에 대해 알아 보시기 바랍니다. 요즘 꽤 필수 아이템입니다.

자, 실제 질문에. 다시 (그리고 RB가 그의 훌륭한 코멘트를 확장하는 것을 꺼리지 않기를 바란다.) 패스워드 필드 (* **)에서 볼 수있는 것은 단지 브라우저가 패스워드를 보지 못하게하는 방법 일 뿐이다. 별처럼 보이는 사실로도 안전하지 않습니다. 또한이 입력 필드에서만 읽어야합니다. 당신은 결코 그것에 쓰면 안됩니다. 암호 필드에 아무 것도 쓰지 않으면 공격자가 사용중인 해시 또는 보안의 종류에 대한 정보를 알 수 있습니다.

가장 좋은 방법은 사용자 편집 화면의 암호 필드를 비워 두는 것입니다.MVC가 자동 채우기를 사용한다면 입력 상자의 이름을 기본 객체와 연결되지 않는 이름으로 변경해야한다고 제안합니다. MVC의 보안에 대한 자세한 내용은 Microsoft's asp.net website에서 확인할 수 있습니다.