SqlMembershipProvider를 사용하고 암호를 해시로 저장하고 있습니다. 또한 (해시 된) 암호의 기록을 다른 테이블에 보관하고 있습니다. 나는 사용자가 자신의 암호를 변경하려고 시도한 암호를 이전 암호로 비교할 수 있기를 원하고 너무 최근의 경우 오류를 던질 수 있기를 원합니다. 나는 이것을하기 위해 해싱 함수를 사용하는 방법을 알아낼 수없는 것 같습니다. 기본적으로 내가 찾고있는 것은 다음과 같은 방법입니다 :SqlMembershipProvider가 만든 해시 된 암호와 암호 기록을 비교하려고 시도합니다.
public bool PasswordCompare(string plaintextPassword, string salt, string hashedPassword)
{
//where the salt and hashedPassword are pulled out of the aspnet_Membership table
//which are automatically generated by the provider
}
나는 이것이 분명히 희망하기를 바랍니다.
이유는 단순히 사용자 아이디, 암호 및 그런 다음 마지막으로 다섯 가지를 조회 할 또 다른 기록 테이블에 현재 날짜와 시간을 기록하는 aspnet_Membership 테이블에 트리거를 넣어? – Thomas
@ 토마스는 암호를 일반 텍스트로 저장하라는 제안입니까? –
@Wyatt Barnett - 물론 그렇지 않습니다. 해시 (및 소금)를 로그 테이블에 저장하고 현재 해시 및 소금을 해당 목록과 비교할 수 있습니다. – Thomas