이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 13344|회답: 1

[우편] extmail의 md5crypt 암호화 방법 원리(PHP 구현)

[링크 복사]
게시됨 2015. 5. 21. 오전 8:05:33 | | |
이 회사는 최근 extmail+postfix를 메일링 솔루션으로 사용했습니다. 기존 OA 시스템에서는 직원들이 OA에 로그인할 때 법적 계정으로 로그인해야 하지만, 이 경우 최소 두 개의 독립적인 계정과 비밀번호가 필요해 업무 효율성에 일정한 영향을 미칩니다.

따라서 기존 OA 시스템 로그인 메커니즘을 extmail과 동일한 계정과 비밀번호 정보를 사용하도록 수정하기로 결정했으며, 이는 직원들이 이메일 비밀번호를 기억하는 한 OA 시스템에 로그인할 수 있어 업무 효율성을 크게 향상시킬 수 있다는 장점이 있습니다.

이해한 후, extmail은 MySQL 사용으로 이메일 계정 정보를 저장하고, 메일박스 테이블의 비밀번호가 암호화된 비밀번호 정보를 저장하지만, extmail은 여러 암호화 방식을 지원합니다. 자세한 내용은 /var/www/extsuite/extman/webman.cf 파일의 SYS_CRYPT_TYPE 항목 설정을 확인해 보시면 됩니다.

제 시스템은 md5crypt 암호화를 사용하며, 비밀번호 형식은 $1$k0Q4EA49$XXXXXXXXXXXXXXXXXXXXX입니다.
원래 비밀번호가 메일박스 테이블에 더 이상 기록되지 않는다면, 사용자가 비밀번호를 올바르게 입력했는지 어떻게 확인할 수 있나요?

PHP 매뉴얼에서 크립트 함수 사용법을 여러 번 확인한 결과, 크립트가 다양한 해시 암호화 방식을 지원한다는 것을 알게 되었습니다. PHP 매뉴얼의 크립트 함수 구체적 사용법을 자세히 읽어보시기 바랍니다.

md5crypt는 salt를 가지고 있는데, 이 솔트는 암호화된 암호문, 즉 $ 기호와 그 안에 포함된 문자에 기록되어 있으며, 위 암호화 결과에서 Salt는 $1$k0Q4EA49$이므로 원래 비밀번호의 암호화 알고리즘을 PHP 구현하면 123456 있으며, salt는 $1$k0Q4EA49$입니다.

<?php
에코 크립트('123456', '$1$k0Q4EA49$');

출력 $1$k0Q4EA49$WcjktPPYOSyhI77n8BPPr.

이 원칙을 알게 되면 extmail의 메일박스 계정 정보 검증을 우리 시스템 어느 곳에 통합할 수 있습니다.

또한, 리눅스의 /etc/shadow와 grub의 md5-crypt의 암호화 방식은 위 원리와 정확히 같습니다. 다른 도구를 사용하지 않고 계정의 비밀번호를 강제로 123456으로 변경하고 싶다면, /etc/shadow 파일의 해당 계정의 두 번째 필드를 $1$k0Q4EA49$WcjktPPYOSyhI77n8BPPr로 설정할 수 있습니다.




이전의:sql to Linq 툴
다음:EXTMAIL 관리자 비밀번호 복구
게시됨 2019. 9. 10. 오후 10:44:07 |
페이 형, 형님
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com