2017-01-15 1 views
2

데이터베이스 테이블의 암호 필드를 암호화해야하므로 사용자 데이터 저장을위한 데이터베이스 테이블을 만들고 있는데 제어판에서 암호화 할 수있는 방법이 있습니까?PHPMyAdmin 제어판에서 암호화 된 암호를 변경하는 방법은 무엇입니까?

+1

공격자가 DB를 얻을 때 ** 암호를 암호화하지 않음 **, 그는 또한 암호화 키를 얻을 것이다. 약 100ms 동안 무작위 소금으로 HMAC를 반복하고 소금을 해시로 저장하십시오. 'password_hash' /'password_verify','PBKDF2' (일명'Rfc2898DeriveBytes'),'Bcrypt'와 같은 함수를 사용하십시오. 요점은 공격자가 무차별 적으로 암호를 찾는 데 많은 시간을 소비하게하는 것입니다. – zaph

+0

zaph에는 암호에 관한 좋은 조언이 있습니다. 암호를 되돌릴 수있는 방법으로 저장하면 안됩니다. 대신 해시를 사용하십시오. 당신은 또한 "사용자 데이터"를 언급하므로 사회 보장 번호 나 신용 카드 정보와 같이 가역적이어야하는 개인 정보를 의미한다고 생각했습니다. 평문 (plaintext)에 안식하게 보관해서는 안되는 것. 해시에 대한 자세한 내용은 오른쪽의 관련 섹션에 많은 좋은 질문이 있습니다. –

답변

-1

물론 phpMyAdmin을 사용하면 AES_ENCRYPT,, SHA1 등 모든 MySQL 기능을 쉽게 사용할 수 있습니다. 삽입 탭에는 사용할 MySQL 함수를 선택하는 드롭 다운 메뉴가 있습니다.

Insert function dropdown

+0

비밀번호 암호화가 안전하지 않아 사용자가 위험에 처하게되므로 그렇게하지 마십시오. 질문에 대한 주석을보십시오. – zaph

+0

참이지만 같은 드롭 다운을 사용하면 해시 함수도 선택할 수 있습니다. 내가 AES_ENCRYPT 대신 내장 된 해시 함수 대신 멈추었 기 때문에 실제로 대답이 바뀌지는 않습니다. MySQL은 일부 인기있는 해시 함수를 기본적으로 지원하지 않으므로 MySQL (또는 phpMyAdmin) 내에서 기본적으로 호출 할 수 없으며 삽입을 수행하기 전에 해시 결과를 얻어야합니다. –

+0

해시 함수만으로는 충분하지 않으며 단지 소금을 추가하면 보안을 향상시키는 데별로 도움이되지 않습니다. 질문에 대한 주석을보십시오. PHP Admin과 DB는 베스트 프랙티스에 따라 잡기가 느려서 암호 보안이 PHP Admin/MySQL 외부에서 수행되어야합니다. 이외에도, 나중에 '80 년대 레트로 모든 대문자를 사랑해야 해! – zaph

관련 문제