2017-12-22 12 views
0

md5 해시 된 암호로 로컬 PostgreSQL 데이터베이스에 연결 중입니다.MD5 해시 된 암호 : 해시가되는 위치는 어디입니까?

작동하지만 두포에서 무슨 일이 일어나고 있는지 알고 싶습니다.
pq은 암호가 네트워크를 통해 전송되기 전에 암호를 해시합니까? 해시할지 아니면 일반 텍스트로 남길지 어떻게 알 수 있습니까? pg_hba.conf에있는 서버는 연결을 통해 암호가 전송되는 방법에 대한 인증 방법을 지정합니다.

암호가있는 연결 문자열을 보내기 전에 pq와 psql 사이에 핸드 셰이크가 있습니까?

user := "foo_user" 
    password := "test" 
    dbname := "bar" 
    connectionString := fmt.Sprintf(
     "user=%s password=%s dbname=%s", 
     user, 
     password, 
     dbname) 
    db, err := sql.Open("postgres", connectionString) 

사용자 비아 암호로 생성 하였다

ALTER USER foo_user WITH PASSWORD 'test'; 

암호 해시로 저장되는 것을 확인 :는 완전히

postgres=# SELECT rolname, rolpassword from pg_authid; 
     rolname  |    rolpassword    
-------------------+------------------------------------- 
postgres   | 
pg_signal_backend | 
foo_user   | md51083525553eab8f4090ada980d2b86e7 
(3 rows) 

그리고 있는 pg_hba.conf 수정되지 않음 :

# maintenance (custom daily cronjobs, replication, and similar tasks). 
# 
# Database administrative login by Unix domain socket 
local all    postgres        peer 

# TYPE DATABASE  USER   ADDRESS     METHOD 

# "local" is for Unix domain socket connections only 
local all    all          peer 
# IPv4 local connections: 
host all    all    127.0.0.1/32   md5 
# IPv6 local connections: 
host all    all    ::1/128     md5 
+1

해제 시간. http://passlib.readthedocs.io/en/stable/lib/passlib.hash.postgres_md5.html "이 알고리즘은 현대 표준에 의해 안전하다고 간주되지 않으며 기존 해시를 확인할 때 또는 이 형식이 필요합니다. 새 코드의 경우 권장되는 해시 목록을 참조하십시오. " – ceejayoz

답변