MySQL PhpMyAdmin - 인식할 수 없는 키워드 CONCAT
phpMyAdmin을 사용하여 MySQL에서 비밀번호 해시 테이블을 만드는 연습을 하고 있습니다.입력하려는 SQL 코드는 다음과 같습니다.
편집: 사용 중인 새 코드 사용:
INSERT INTO `user` (`username`, `salt`, `passwordhash`)
VALUES ('username', 'a1b2c3d4e5f6g', SHA2(CONCAT('password', 'a1b2c3d4e5f6g'), 256)));
SHA2 이후에는 모든 것이 오류이며, 첫 번째 SHA2는 "Unrecognized Keyword"라고 합니다.(CONCAT 근처)나머지는 모두 "인식할 수 없는 토큰"이라고 말하고 문자열이 무엇이든 말합니다.따라서 이러한 모든 문제는 CONCAT에 의해 발생한 것으로 보입니다.끈을 연결하는 다른 방법이 있나요?
당신은 가지고 있어야 한다.
쿼리 오류(1582):네이티브 함수 'SHA2' 호출의 매개 변수 수가 잘못되었습니다.
이렇게 하면 나에겐 효과가 있어
CREATE TABLE `user` (
`username` varchar(255) NOT NULL,
`salt` varchar(255) NOT NULL,
`passwordhash` varchar(255) NOT NULL
) ENGINE='InnoDB' COLLATE 'utf16_bin';
INSERT INTO `user` (`username`, `salt`, `passwordhash`)
VALUES ('username', 'a1b2c3d4e5f6g', SHA2('test',CONCAT('password', 'a1b2c3d4e5f6g')));
SELECT * FROM user;
username salt passwordhash
username a1b2c3d4e5f6g 9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08
username a1b2c3d4e5f6g 9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08
새 코드: 추가 브래킷이 있습니다., 256)));
.
여기:
INSERT INTO `user` (`username`, `salt`, `passwordhash`)
VALUES ('username', 'a1b2c3d4e5f6g', SHA2(CONCAT('password', 'a1b2c3d4e5f6g'), 256));
이거랑 제가 남긴 댓글들이랑.
편집: MySQL 매뉴얼에 따라 다음 항목을 수행합니다.SHA2()
관련 문제일 수 있습니다.
https://dev.mysql.com/doc/refman/5.5/en/encryption-functions.html#function_sha2에 따르면
이 기능은 MySQL이 SSL 지원으로 구성된 경우에만 작동합니다.섹션 6.4 "보안 연결 사용"을 참조하십시오.SHA2()는 암호학적으로 MD5() 또는 SHA1()보다 안전한 것으로 간주할 수 있습니다.SHA2()는 MySQL 5.5.5에 추가되었습니다.
따라서 사용 중인 MySQL 버전이 일치하는지 또는 그보다 더 높은지 확인하십시오.5.5.5보다 낮은 경우SHA2()
사용할 수 없습니다.서버상의 sysadmin/security 문제일 수 있습니다.
코멘트로 「SHA2 를 사용한다고 하는 학교 튜토리얼을 따르고 있습니다」라고 말한 것처럼, 이 문제의 원인이 학교의 sysadmin 에 문의해 주세요.어느 쪽이든 MySQL 버전은 여기서 중요합니다.
설치된 MySQL 버전을 확인하려면 phpmyadmin에서 다음 구문을 사용합니다.
%version%와 같은 변수 표시,
당신이 하던 일 대신에SELECT VERSION();
.
MySQL 문서에 따르면:
SHA2(str, hash_length)
해시 함수의 SHA-2 패밀리(SHA-224, SHA-256, SHA-384 및 SHA-512)를 계산합니다.첫 번째 인수는 해시되는 클리어 텍스트 문자열입니다.두 번째 인수는 결과의 원하는 비트 길이를 나타냅니다.이 값은 224, 256, 384, 512 또는0(256에 상당)이어야 합니다.인수 중 하나가 NULL이거나 해시 길이가 허용된 값 중 하나가 아닌 경우 반환 값은 NULL이 됩니다.그렇지 않은 경우 함수 결과는 원하는 비트 수를 포함하는 해시 값입니다.해시 값을 효율적으로 저장하는 방법에 대해서는 이 섹션의 첫머리에 있는 참고 사항을 참조하십시오.
.SHA2()
함수(해시 길이)와 이 인수는 값 224, 256, 384, 512 또는 0 중 하나여야 합니다.
INSERT INTO `user` (`username`, `salt`, `passwordhash`) VALUES ('username', 'a1b2c3d4e5f6g', SHA2(CONCAT('password', 'a1b2c3d4e5f6g'),256));
언급URL : https://stackoverflow.com/questions/40744586/mysql-phpmyadmin-unrecognized-keyword-concat
'programing' 카테고리의 다른 글
1일마다 스케줄이 설정되어 있는 경우 mariadb/mysql 이벤트가 실제로 어떻게 동작하는지 및 ENS의 용도는 무엇입니까?이벤트가 완전히 비활성화됩니까? (0) | 2022.11.06 |
---|---|
PHP: 소수 자릿수를 가져옵니다. (0) | 2022.11.06 |
Panda 시리즈 또는 인덱스를 NumPy 배열로 변환하려면 어떻게 해야 합니까? (0) | 2022.11.06 |
Java에서 Suppress Warnings("체크 해제")란 무엇입니까? (0) | 2022.11.06 |
특정 색인 뒤에 있는 목록에서 모든 요소 제거 (0) | 2022.11.06 |