[질문]회원가입DB에서 암호화 문제에 따른 패스워드의 로그인...

kimyh의 이미지

리눅스 9.0서버에 C로 작성한 소켓프로그램과 데이터베이스 콘트롤 프로그램을 올리고
클라이언트에는 리눅스 계열(C로 작성)과 윈도우(vc++6.0으로 작성) 계열의 소켓프로그램으로 회원 가입 db를 아이디와 패스워드를 통하여 로그인 하는 프로그램을 구현 하고 있습니다.

그런데 서버측에서 패스워드를 암호화 처리를 해서 db에 저장을 해서 그런지 클라이언트에서 전송한
패스워드를 서버에서 인식을 못 하는군요.

실제로 서버의 콘솔에서 직접 mysql db에 들어가 암호화 되지 않은 패스워드로 select문을 쿼리해보니 않되더군요. 그러나 암호화된것을 패스워드로 쿼리를 하면 잘 되고요.

이럴경우 서버측에 있는 db 콘트롤 프로그램에 무슨 특별한 조치를 해 주어야 한가요.
암호화 복호화는 특별히 다뤄 본적도 없어 무척 당황 스럽군요.

서버측의 회원가입db를 콘트롤하는 프로그램에 패스워드를 암호화 해서 쿼리하는 프로세스를
추가 해야 한다면 암호화에 관련한 함수나 사용법좀 알려 주시면 감사하겠습니다.

송효진의 이미지

리눅스 9.0 -> 레드햇 리눅스 9.0

php 의 crypt() 함수로 암호를 검증하는 방법이나,
mysql 의 PASSWORD() 함수로 암호를 검증하는 방법을 찾아보세요.

emerge money

eno의 이미지

일단 먼저 DB에 저장된 패스워드가 무슨 알고리즘으로 암호화 되었는지 물어보세요.

보통 패스워드를 DB에 저장할 때 hash 방식을 씁니다. MD5, SHA-1 등등
만약 해쉬방식이라면 복호화는 당연히 안될거고요,
(왜냐하면 패스워드는 복호화 가능하게 한다면 보안상 위험하겠지요.)

client가 보낸 암호화 되지않은 패스워드 를 서버에 보내주고 서버에서는
client의 패스워드와 DB의 해쉬된 패스워드가 일치하는지 검증해 주는 function 을
만들면 될 듯 합니다.

해쉬(client 패스워드 평문) == (DB의 해쉬된 패스워드)
이런 로직이겠죠.
c로 짜여진 md5 해쉬 소스들은 쉽게 구하실 수 있을듯요.

마잇의 이미지

저도 md5로 암호화 되었을 것이라고 짐작이 되네요.

간단하게 시험해보시려면

$ md5
비밀번호^D^D

요렇게 해보시면 해쉬값을 알 수 있습니다. Ctrl-D는 두번 연속 눌러야 합니다. 엔터를 치고 나서 바로 ^D를 입력하면 한번으로 되지만 이렇게 하면 뉴라인 문자가 포함되버려서 해쉬값이 틀려지더군요.

이렇게 구한 걸로 일단 DB에 쿼리를 해보셔서 md5로 된것이 맞는지 확인해 보시면 될 것 같습니다.

--
마잇


--
마잇

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.