2009-06-27 7 views
4

C/C++ 기반 cgi 웹 응용 프로그램은 사용자가 로그인하는 동안 서버에 임시 텍스트 파일을 작성합니다. 사용자가 로그 오프하면 텍스트 파일이 삭제됩니다. 이 텍스트 파일과 파일의 내용을 암호화하려고합니다. 파일에는 사용자 이름 및 비밀번호와 같은 정보가 포함됩니다.C/C++에서 텍스트 파일을 암호화하는 가장 좋은 방법은 무엇입니까?

가장 좋은 방법은 무엇입니까?

편집 : 라이브러리가 제안 된 것으로 보입니다. 내 문제는 표준 C++ 라이브러리 이외에는 사용할 수 없다는 것입니다.

+0

또한보십시오 http://stackoverflow.com/questions/674401/crypto-library-for-c –

답변

2

현재 "안전한"것으로 간주되는 암호화 표준은 AES (Rijndael이라고도 함)입니다. Codeproject과 다른 많은 곳에서 C++ 구현을 찾을 수 있습니다.

AES 또는 다른 대칭 암호화 표준을 사용하는 경우 암호화/암호 해독 키를 응용 프로그램 내에 저장해야합니다. 누구든지 키를 발견하면이 키로 암호화 한 모든 파일의 암호를 해독 할 수 있습니다.

응용 프로그램이 Windows에서 실행되는 경우 DPAPI을 사용하여 암호화 된 정보를 저장할 수도 있습니다.

+0

좋은 아이디어는 REing가 더 단단하게 할 것이다 그래야 절차 적으로 열쇠를 생성하기위한 것일 것입니다. RAM 덤프는 여전히 가능하므로 비 순차 형식으로 키를 유지하는 것이 좋습니다. – LiraNuna

+0

"AES 또는 다른 대칭 암호화 표준을 사용하는 경우 응용 프로그램 내에 암호화/암호 해독 키를 저장해야합니다. 누군가 키를 발견하면이 키로 암호화 한 모든 파일의 암호를 해독 할 수 있습니다." 정확히 어떤 이유로 앱의 실행 파일에 원시 키를 저장하거나 저장할 수 없습니다. 키는 암호문이나 이와 유사한 것으로 보호해야합니다. –

3

openssl과 같이 잘 알려진 라이브러리를 사용하고 잘 알려진 examples을 따르고 플랫폼 별 솔루션에서 멀리 떨어져 있어야합니다.

0

수정 된 답변.
C++ 코드에서 사용할 수있는 파일을 암호화하고 해독하는 코드가 필요합니다.
자신의 코드 (like this one)를 쓰는 것은 절대 잘못된 것입니다.

그러나 표준 라이브러리는 사용할 수 없다고 말합니다.
표준 (아마도 오픈 소스) 라이브러리는 아마도 응용 프로그램에서 암호화를 구현하는 가장 올바른 방법 일 것입니다. 당신이 그렇게하지 않도록 선택할 경우,

  • (당신이 만드는 오류에 의해 위험 약점) 자신의 표준 암호화 알고리즘의 버전을 구현, 두 옵션을 떠나는 '시스템'전화를 사용 귀하의 응용 프로그램에서 (아마도 bcrypt 같은) 표준 암호화를 실행 아마도 귀하의 시스템에서 사용할 수 있습니다.

나는 여전히 표준 라이브러리를 선택하거나 이러한 오픈 소스 코드를 내 응용 프로그램에 통합해야 할 것입니다. 그렇게하지 못하게 한 이유를 설명하십시오. 올드


는 : 어떤 이유로, 나는 PHP 코드를 ... 내 오류가 필요했다 생각했다.
이 문서에서는 암호를 텍스트 파일에 저장하는 데 a PHP encryption symmetric program example using crypt을 제공합니다.

아마 관련 유래 질문

+0

그는 C++을 사용하고 있습니다. 필자는 PHP 스크립트가 적절하다고 생각하지 않습니다. –

3

나는 이것이 잘못된 길로 가고 있다고 생각합니다.보안, 실제 보안이 목표라면 암호를 암호화 된 형식으로 저장하는 것을 원하지 않을 것입니다. 다른 사람이 말했듯이 암호가 도난 당하면 해독 할 수 있기 때문입니다.

비밀번호의 해시를 저장해야합니다 (적절한 소금 포함). 이는 아무도 (사이트 관리자조차도) 사용자의 비밀번호를 확인할 수 없음을 의미합니다. 암호를 받아 들일 수 있고 입력이 동일한 소금으로 해시 됨으로써 해시를 역으로 바꿀 수 없는지 여부를 알 수 있습니다.

또한 이런 종류의 상황은 데이터베이스에 좋으며, 하나를 사용하고 있습니까?

Google 비밀번호가 인 해싱 암호이며 실제 보안 전문가 (나는 아님)로부터 읽을 수 있습니다.

관련 문제