2012-06-01 2 views
0

사용자의 개인 데이터를 암호화하여 데이터베이스에 저장하려고합니다.각 사용자의 암호를 자신의 데이터에 대한 암호화 키로 사용하십시오.

암호화는 응용 프로그램에서 수행해야합니다

지금 나는 그것이 암호화하는 각 사용자의 암호를 사용하고 나중에 자신의 데이터를 해독 할 수 있는지 궁금합니다 (I는 SQL 서버 측에 있다고 할 수 없다)? 이 접근법의 장단점은 무엇입니까/

+1

좋은 저속 KDF를 사용해야합니다. 특히 반복 횟수와 염에주의하십시오. – CodesInChaos

+1

사용자 암호를 소금으로 사용해보십시오. – JWiley

답변

2

큰 '죄수': 사용자가 비밀번호를 변경하면 어떻게됩니까? 그런 다음 모든 데이터를 다시 암호화해야합니다!

+0

예, 나는 그것을 고려하지 않았습니다! 좋은 지적 . 나는 그것을 할 수 없다. –

0

사용자의 보안 개인 데이터를 저장하려고한다고하셨습니다. 개인 정보가 아니라면이 작업을 수행하십시오. 매우 민감한 경우는 일반적으로 여러 가지 이유로 권장되지 않습니다. 그러나 일반적으로 수행되는 작업은 사용자의 암호 해싱 + 소금 처리입니다.

이 페이지에는 해싱 및 소금 처리가 어떻게 작동하는지, 그리고 암호를 암호화 한 다음 해독하는 것이 더 나은 이유가 설명되어 있습니다. 우리는 사용자 정의 염을 사용할 수 있습니다 단지 비밀번호와 같은 사용자의 개인 정보를 암호화 + 예상되는 사용자 ID의 사용자 정의 해시 상당을 사용하는 우리의 응용 프로그램에 매우 간단하지만 효과적인 알고리즘을 해시에 관해서는

http://net.tutsplus.com/tutorials/php/understanding-hash-functions-and-keeping-passwords-safe/

영원히 영원하고, 영원하며, 영원합니다.

uID (또는 모든 사용자를위한 특수한 고유 문자열)는 일반 대중으로부터 숨길 수 있으며 인증되지 않은 출처에서 사용자 지정 공유 기능에 액세스 할 수 없도록 보장하므로 견고한 보안 시스템을 갖추고 있습니다.

즉, 우리는 사용자 아이디와 해시 + 소금과 같은 고유 한 문자열을 바탕으로 해시 + 소금 사용자의 암호를 해시합니다. 개인 정보를 암호 해독하려면 userID 해시와 암호 해시가 모두 데이터베이스와 일치해야합니다.

더 나은 방법은 프로그램에서 알려진 암호화 프로토콜을 사용하는 것입니다. 예를 들어 HTTPS TLS를 통해 전송 된 데이터는 올바르게 구현 된 경우 매우 안전합니다.

관련 문제