로그온/로그 오프 기능으로 웹 사이트를 만들려고하고 있으며 암호를 올바르게 해싱하고 소금으로 처리 할 계획입니다. 그러나 내가 직면 한 문제는 데이터베이스에 암호를 저장하는 방법입니다. 데이터베이스 (해시 텍스트 또는 일반 암호화되지 않음)에 해쉬 된 + 암호가 설정된 암호를 저장해야한다는 것을 알고 있지만 기술적으로 이진 데이터를 데이터베이스에 삽입하는 방법을 알지 못합니다.C#을 사용하여 SQL Server 데이터베이스에 해시를 저장하려면 어떻게해야합니까?
초기 시도에서 데이터베이스에있는 데이터를 가져올 수있는 유일한 방법은 이진 데이터를 base64 문자열로 변환하고 varchar
암호 필드에 삽입하는 것이 었습니다. 그러나 그게 올바른 방법이 아니라는 것을 알려주고 있습니다. 그것을하기 위해.
데이터베이스의 암호 필드는 현재 varchar
이지만 이해하면 해시 된 암호는 바이너리입니다. 그래서 암호 필드를 바이너리 개체로 변경해도, 나는 아직 모른다. 실제로 그것을 삽입하는 방법!
이해가 안되면 설명을 요청하면 다시 연락 드리겠습니다.
해시는 varchar 일 수 있습니다 ... 바이너리가 아니어도 호기심에서 벗어났습니다. 사용중인 기능은 무엇입니까? – hackartist
왜 base64를 사용하지 않으시겠습니까? 간단하고 데이터가 크기에 대해 걱정할 정도로 작습니다. –
Base64는 사람이 읽을 수있는 형식으로 해시를 유지하는 가장 안전한 방법입니다. 소금에 절인 해시를 일반 텍스트로 저장하는 데는 아무런 문제가 없습니다. 그것이 암호가 아니라 해시를 저장하는 전체 목적입니다. – Douglas