서버에는 평문 메시지를 두지 않고, 브라우저가 공개키를 교환한 뒤 생성한 방 키로 메시지를 암호화해 저장하는 단일 PHP 채팅방입니다. 방 생성, 참가, 자동 만료 메시지, 방 유지시간, 폴더 단위 저장 구조를 한 화면에서 다룹니다.
meta.json, participants.json, messages.json로 분리해 저장합니다.
입장코드 뒤에 #지문을 붙이면 참가자가 공개키 바꿔치기를 바로 비교할 수 있습니다.
방장 설정이 없더라도 30일 동안 아무도 접근하지 않으면 폴더 전체를 정리합니다.
공개방과 비공개방 입장을 같은 패널에서 처리합니다. 비공개방이면 초대코드까지 입력하면 됩니다.
입장코드 뒤에 #방장공개키지문을 함께 전달하면 참가자가 서버 응답 지문과 직접 비교할 수 있어 안전합니다.
방 코드는 직접 지정하거나 비워 두고 랜덤 생성할 수 있습니다. 초대코드를 넣으면 비공개방으로 바뀝니다.
체크하지 않으면 30일 무접속 정리 정책만 적용됩니다.
방 생성 시 폴더를 하나 만들고 그 안에 메타, 참가자, 메시지를 파일로 분리 저장합니다. 이 구조는 단일 PHP 파일이어도 상태를 읽고 복구하기 쉽게 유지합니다.
초기 진입부터 암호화 대화가 열릴 때까지의 흐름입니다.
지금 구현된 권한과 자동 정리 정책입니다.
암호화 채널을 준비하는 중입니다.
공유용 코드는 우측 패널에서 바로 복사할 수 있습니다.
메시지마다 개별 TTL을 다시 지정해서 보낼 수 있습니다.
별도 유지시간이 없으면 무접속 방만 정리합니다.
키 교환이 끝나면 메시지를 브라우저에서 바로 복호화합니다.
메시지는 암호화 후 전송되며, Ctrl+Enter로 바로 보낼 수 있습니다.