저는 PHP로 웹 사이트를 만들고 MySQL 데이터베이스에 사용자의 개인 정보 (이름, 주소, 전화 번호)를 저장해야합니다. 정보가 사용자에게 표시됩니다.개인 정보를 어떤 열쇠로 암호화해야합니까?
AES 암호화를 사용하여 데이터를 암호화 할 계획입니다. 사용자 암호를 사용하는 것은 사용자에게 친숙하지 않은 것 같습니다. 사용자가 데이터를 표시해야 할 때마다 암호를 입력해야하기 때문입니다.
사용자 ID, 해시 된 암호 및 사용자 이름이 추가 된 다음 해시 된 세션에 저장된 문자열을 사용하고 싶습니다. 이것은 안전한 암호 키입니까?
알 수 있습니다. 하지만 키가'hash ($ unhashed_password. $ id. $ username)'이면 어떨까요? 열쇠는 여전히 저장됩니까? 사용자가 로그인하면 파생되기 쉽기 때문에이를 사용하는 것이 더 좋지만 공격자가 파생하는 것은 불가능합니다. unhashed 비밀 번호는 데이터베이스에 저장되지 않습니다, 그래서 나는 이것이 안전하다고 가정합니다. – FalconC
@FalconC 그 열쇠도 안전하지 않습니다. 첫째, 해싱은 좋은 키 유도 함수가 아닙니다. 암호를 추측하려는 오프라인 공격을 쉽게 탑재 할 수있는 방법입니다. 계산하기 어려운 키 유도 함수가 필요합니다. Wose, 대부분의 해시 함수에 대해 암호의 해시를 지정하면 언급 한 해시를 계산할 수 있습니다. 이를 길이 확장 공격이라고합니다. http://en.wikipedia.org/wiki/Length_extension_attack – imichaelmiers
나는 모양을 가질 것이다. 고맙습니다. – FalconC