2011-11-13 6 views
2

다음은 mysql 자격 증명 테이블에 대한 간단한 테이블 정의입니다.mySQL에 대한 간단한 자격 증명 테이블

case "credentials": 
    self::create('credentials', 'identifier INT NOT NULL AUTO_INCREMENT, flname VARCHAR(60), email VARCHAR(32), pass VARCHAR(40), PRIMARY KEY(identifier)'); 
    break; 

내부 인수 이외의 모든 것을 무시하십시오 ... 구문이 좋음 ... 양식을 확인하기 만하면됩니다. 기본적으로, 나는 PRIMARY KEY와 사용자의 이름, 전자 메일 및 암호와 같은 3 개의 필드에 대해 자동으로 증가하는 int를가집니다.

가능한 한 간단하게하고 싶습니다. 검색은 ID를 기반으로합니다

질문 : 기본 자격 증명 테이블에서 작동합니까?

답변

0

전자 메일 필드의 크기를 늘리십시오 (전자 메일의 최대 길이는 최대 256 자까지 가능). 또한 암호를 일반 문자열이 아닌 해시 (예 : bcrypt)로 저장해야합니다.

1

암호를 일반 텍스트로 저장하지 마십시오.

bcrypt 또는 PBKDF2와 같이 잘 알려진 반복 해싱 기능을 사용하십시오. 원시 MD5 해시 또는 원시 SHA 또는 SHA-2 해시를 저장하지 마십시오. 당신은 항상 당신의 해시를 염색하고 반복하여 안전해야합니다.

소금을 저장하는 데 하나의 추가 열이 필요하며 유연한 방법을 원할 경우 사용자 별 반복 횟수 및 사용자 별 해시 함수를 사용할 수도 있습니다. 그러면 모든 사용자가 즉시 암호를 변경하지 않고도 다른 해시 함수로 변경할 수있는 유연성이 제공됩니다.

그 외에도 표가 잘 보입니다.