2013-03-03 1 views
1

CMS 시스템에서 작업 중이며 사용자의 데이터를 보호하는 기능을 추가하고 싶습니다. 물론 패스워드는 해시되고 무차별 대입 (brute forcing)을 통해서만 해독 될 수 있습니다. 하지만 지금은 나머지 데이터, 예를 들어 메일 주소에 관한 것입니다. 사용자가 메일을 보낼 때마다 디코딩 될 수있는 등록 할 때 메일 주소를 인코딩하는 함수를 갖고 싶습니다. 이제 해싱 문제는 당신이 쉽게 다시 변환 할 수 없다는 것입니다. 적어도 md5와 sh1 및 이와 유사한 알고리즘을 사용하면 이것이 가능하지 않으므로 원하는 것은 아닙니다.인코딩 및 디코딩을 통한 사용자 데이터 보호?

소금을 인코딩 및 디코딩 프로세스에 사용할 수있는 기능이 필요합니다. 즉, 임의의 문자열이이 응용 프로그램의 '시드'또는 '소금'으로 사용되는 웹 응용 프로그램의 어딘가에 저장되어 있으므로 임의의 문자열이 다르면 결과가 달라져 한 번 디코딩하기가 더 어려워집니다. 해커 (예 :)가 데이터베이스에 침입하여 데이터를 훔쳤습니다.

PHP에서 base64_encode()base64_decode()이라는 함수를 보았을 때 이러한 함수는 데이터를 쉽게 추출하고 디코딩 할 수 있습니다. 이 기능의 문제점은 '소금'매개 변수가 없기 때문에 보호 기능이 좋지 않다고 생각합니다. 엔코딩 및 디코드 기능과 소금 매개 변수를 사용하여 더 많은 보호 기능을 제공하는 기능이 있습니까? 사전에

감사합니다, 팀 Visée

+0

흠 ... 모든 것을 디코딩하고 인코딩하면 성능에 영향을 미칩니다. 그리고 가장 중요한 점은 : 프론트 엔드에서 물건을 인코딩해야한다는 것입니다. 누군가가 읽을 수있는 JS를 통해서만 수행 할 수 있습니다. 어쩌면 당신은 SSL 암호화에 가야만합니다 –

+0

처음에는 틀렸어. '암호화'를 의미 했어. 그래서 내가 내 대답을 찾지 못했고, 영어가 내 네이티브 언어가 아니 었어 .Btw, 내가 왜 필요하다고 생각하니? 예를 들어 Javascript를 사용하여 클라이언트에서 물건을 암호화하거나 해독 할 수 있습니까? 내가 생각하기에 그것은 모두 서버 사이드에서 할 수있다. 암호화는 데이터를 브라우저로 안전하게 전송하는 데 사용되는 것이 아니며 대신 SSL을 사용합니다. –

답변

3

내가 당신에게 인코딩의 차이, 해싱 및 암호화를 설명하겠습니다.

  • 인코딩은 단지 데이터를 나타내는 방법이므로 보안을 유지하는 데 도움이되지 않습니다. base64는 8 비트 데이터 표현을 6 비트로, 즉 전자 메일 본문으로 전송하기 위해 인코딩하는 역할을한다. 유용하지 않습니다.
  • 해시는 일반적으로 다음 속성을 사용하여 데이터의 단방향 변환을 수행합니다.
    • 여러 데이터 문자열이 동일한 해시를 갖습니다. 임의의 길이의 문자열을 해시 할 수 있지만 생성 된 해시의 길이는 항상 제한되어 있으므로 모든 입력 문자열이 고유 해시를 가질 수있는 것은 아닙니다.
    • 해시는 빠르지 만 지정된 해시를 사용하여 원본 데이터를 추측하는 것은 모든 가능한 조합을 시도하는 것보다 간단하게 계산할 수 없습니다.
    • 암호화가 당신이 찾고있는 것입니다. 암호화 된 데이터는 적절한 키로 만 읽을 수 있습니다.

그러나, 나는 데이터베이스에 데이터를 암호화에 큰 포인트가 표시되지 않습니다. 누군가가 PHP 소스 코드와 데이터베이스를 보게된다면, 그는 쉽게 키를 읽고 데이터를 해독 할 수 있습니다. 누군가가 원시 데이터베이스를 훔쳐 왔지만 여전히 소스 코드에 액세스 할 수없는 경우에만 도움이 될 수 있지만, 드문 경우이지만 웹 프로그래머는 일반적으로 그렇게하지 않습니다.

+0

제 잘못, 암호화를 의미했습니다. 영어는 제 모국어가 아니므로 제 잘못입니다. 암호화에 관해서는 데이터베이스를위한 것이 아니라 암호화가 필요한 많은 다른 것들에도 사용될 것입니다. 이 질문을 제거하고 '암호화'를 살펴 보겠습니다. 답변 해 주셔서 감사합니다. –

+1

당신을 환영합니다. 임의의 웹 방문자, 해커가 코드/데이터베이스를 훔치거나 네트워크 통신을 수신하는 스니퍼를 암호화하려는 대상과 암호화하려는 대상을 정확히 보호해야합니다. – amik

관련 문제