답변:
sha256의 이름은 256 비트입니다.
sha256은 16 진 표현을 리턴하므로 ASCII와 같이 8 개 대신 4 개의 문자로 각 문자를 인코딩하기에 충분하므로 256 비트는 64 개의 16 진수 문자를 나타내므로 길이가 항상 동일 하므로 varchar(64)
, 또는 을 필요 char(64)
로합니다. 전혀 변하지 않습니다.
그리고 데모 :
$hash = hash('sha256', 'hello, world!');
var_dump($hash);
당신에게 줄 것이다 :
$ php temp.php
string(64) "68e656b251e67e8358bef8483ab0d51c6619f3e7a1a9f0e75838d41ff368f728"
즉, 64 자의 문자열입니다.
varchar(65)
, 선두에 !
...를 사용 하는 것이 좋습니다 .
SELECT length(to_base64(unhex(sha2('say hello to my little friend',256))))
. 원본 문자열의 길이에 관계없이 항상 44입니다.
SHA256의 256 비트 인코딩 옵션 :
CHAR(44)
문자 당 6 비트 = 패딩 문자 포함CHAR(64)
BINARY(32)
=
제거하고 다시 추가 할 수 있습니다.
왜 VARCHAR로 만드시겠습니까? 다양하지 않습니다. 항상 64 자이며 온라인 SHA-256 계산기 중 하나를 실행하여 확인할 수 있습니다 .
SHA-*
암호를 해시 하기 전에 먼저이 내용을 읽으십시오 .