SHA256
Bir şifre + tuz üzerinde çalışacağım , ancak VARCHAR
MySQL veritabanını kurarken ne kadar süre yapacağımı bilmiyorum . İyi uzunluk nedir?
SHA256
Bir şifre + tuz üzerinde çalışacağım , ancak VARCHAR
MySQL veritabanını kurarken ne kadar süre yapacağımı bilmiyorum . İyi uzunluk nedir?
Yanıtlar:
Bir sha256 256 bit uzunluğundadır - adından da anlaşılacağı gibi.
Sha256 onaltılık bir gösterim döndürdüğünden, her karakteri kodlamak için 4 bit yeterlidir (ASCII için olduğu gibi 8 yerine), bu nedenle 256 bit 64 onaltılık karakteri temsil eder, bu nedenle uzunluk her zaman aynı olduğundan varchar(64)
a veya hatta a gerekir. char(64)
, hiç de farklı değil.
Ve demo:
$hash = hash('sha256', 'hello, world!');
var_dump($hash);
Sana vereceğim :
$ php temp.php
string(64) "68e656b251e67e8358bef8483ab0d51c6619f3e7a1a9f0e75838d41ff368f728"
yani 64 karakterli bir dize.
varchar(65)
önde gelen bir kişi için kullanmanızı öneririm !
.
SELECT length(to_base64(unhex(sha2('say hello to my little friend',256))))
orijinal dizenin uzunluğu ne olursa olsun her zaman 44'tür.
SHA256'nın 256 biti için kodlama seçenekleri:
CHAR(44)
dolgu karakteri dahilCHAR(64)
BINARY(32)
=
sıyrılabilir ve yeniden eklenebilir.
Optimize edilmiş bir yol olduğu için İKİLİ (32) kullanmayı tercih ediyorum!
(00 ila FF) arasındaki 32 onaltılık basamağa yerleştirebilirsiniz.
Bu nedenle İKİLİ (32)!
UPDATE...SET hash_column=UNHEX(sha256HexString)
. Sonra onu alırken sen SELECT HEX(hash_column) AS hash_column
.
Neden VARCHAR yaparsın? Değişmez. Her zaman 64 karakterdir ve çevrimiçi SHA-256 hesaplayıcılarından birine herhangi bir şey çalıştırarak belirlenebilir .
SHA-*
şifreleri karma olarak kullanmaya karar vermeden önce , lütfen önce bunu okuyun .