programing

MySQL PhpMyAdmin - 인식할 수 없는 키워드 CONCAT

goodcopy 2022. 11. 6. 13:22
반응형

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

반응형