SHA256Bir şifre + tuz üzerinde çalışacağım , ancak VARCHARMySQL veritabanını kurarken ne kadar süre yapacağımı bilmiyorum . İyi uzunluk nedir?
SHA256Bir şifre + tuz üzerinde çalışacağım , ancak VARCHARMySQL 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 .