database.sarang.net
UserID
Passwd
Database
DBMS
ㆍMySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MySQL Q&A 31325 게시물 읽기
No. 31325
mysql 5.7.28버전에서 password()함수는 어찌해야하나요..
작성자
이기자(k3i2)
작성일
2020-12-30 12:04
조회수
3,001

Mysql 5.0.44 버전에서 잘쓰던 password()함수가 5.7.28버전으로 올리니,

구버전에서 pasword로 저장돼있던, password('1234')값이 446a12100c856ce9 였는데,


신버전에서는 Select password('1234')하니 *A4B6157319038724E3560894F7F932C8886EBFCF 가 조회가되면서,

Warning: 'PASSWORD' is deprecated and will be removed in a future release.

이런 경고창이 뜨네요.


그래서,

SELECT * FROM member WHERE id='test' AND passwd=old_password('1234');

이 쿼리를 실행하면 위 경고창도 뜨지만 값이 다르니 조회가 안되네요.

어찌 해결해야되나요 ㅠ.ㅠ

이 글에 대한 댓글이 총 3건 있습니다.

비슷한 내용 글이 있네요.

https://hyunki1019.tistory.com/116

정상규(pajama)님이 2020-12-30 13:12에 작성한 댓글입니다.
이 댓글은 2020-12-30 13:12에 마지막으로 수정되었습니다.

old_password()

함수로 바꿔 주셔도 됩니다.

박인호(paerae)님이 2021-01-04 10:51에 작성한 댓글입니다.

MySQL 4.1 버전부터 해싱 함수가 변경되었습니다.

4.1 이전에는 password('1234') 일 경우 16byte 로 데이터가 암호화 되었고

4.1 부터는 41byte 로 데이터가 암호화 되었습니다.

MySQL 5.0 이면 이미 바뀌었어야 할 것 같은데 

시스템 테이블이 변경되지 않은 건지 16byte 로 암호화가 진행된 것 같네요.


하위 버전의 호환을 위해서 MySQL 4.1 부터 old_passwords 시스템 변수와 OLD_PASSWORD() 함수가 추가되었습니다.


old_passwords = 1 이면,

4.1 이전 버전의 해싱 함수(16byte)가 사용되고


old_passwords = 0 이면

4.1 버전 이상의 해싱 함수(41byte)가 사용됩니다.


아래 구문이 적용되지 않는 것은 old_passwords 시스템 변수 값이 0 이기 때문이지 않을까 생각됩니다.


mysql> SELECT * FROM member WHERE id = 'test' AND passwd = old_password('1234');


즉, 상위 버전에서 하위 버전의 해싱 함수와 암호화 길이를 맞추기 위해서는 old_passwords 시스템 변수 값을 1로 설정해주셔야 할 것 같습니다.

my.cnf 에서 [mysqld] 쪽 변경해주시면 됩니다.


<reference>

https://dev.mysql.com/doc/refman/5.7/en/password-hashing.html

otaku님이 2021-01-20 22:49에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
3132880만건 데이터 조회 쿼리 동시에 요청시 실행시간이 요청수*실행시간 만큼 걸리는 현상... [4]
도와주세요
2021-01-14
3324
31327mac 으로 mariadb 설치 후 데이터베이스 생성이 안됩니다.. [4]
따봉도치
2021-01-05
4413
31326값이 없는 년월 찾기 질문드립니다. [1]
피어스
2020-12-30
2800
31325mysql 5.7.28버전에서 password()함수는 어찌해야하나요.. [3]
이기자
2020-12-30
3001
31323계층형 테이블 -> 한 Row로 마이그레이션 [2]
궁금남
2020-12-16
2695
31322CDC와 Replication의 차이점이 궁금합니다. [1]
왜이러니
2020-12-10
2454
31320mysql binlog 관련 질문입니다. [1]
binlog
2020-11-16
2427
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.049초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다