MySQL depolama SHA1 hash değerleri | Netgez.com
SORU
5 Mart 2009, PERÅžEMBE


MySQL depolama SHA1 hash deÄŸerleri

MySQL veritabanı SHA1 karma sonucu saklamak istediğim zaman yaşanan basit bir sorum var:

Ne kadar olmalıVARCHARhangi hash sonucu mağazası bir alan?

CEVAP
5 Mart 2009, PERÅžEMBE


Sabit uzunlukta veri için değişken uzunlukta veri, ama değil VARCHAR kullanmak istiyorsunuz. SHA-1 değeri olduğu içinher zaman160 bit uzunluğunda VARCHAR sadece an additional byte for the length of the fixed-length field atık.

Ve ben de SHA1 dönüyor bu değeri saklamak olmaz. Karakter başına sadece 4 bit kullanır ve böylece 160/4 = 40 gerekir karakter çünkü. Ama eğer karakter başına 8 bit kullanıyorsanız, sadece 160/8 = 20 karakter uzunluğunda bir alan gerekir.

BINARY(20) UNHEX function ikili SHA1 değeri dönüştürmek için kullanmanızı tavsiye ederim.

BINARY(20) CHAR(40) Depolama şartları karşılaştırdım.

CREATE TABLE `binary` (
    `id` int unsigned auto_increment primary key,
    `password` binary(20) not null
);
CREATE TABLE `char` (
    `id` int unsigned auto_increment primary key,
    `password` char(40) not null
);

Kayıtlar milyon binary(20) char(40) 64.57 M. alırken 44.56 M, alır InnoDB motoru.

Bunu PaylaÅŸ:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VÄ°DEO

Rastgele Yazarlar

  • 24 Канал

    24 КанаÐ

    5 ÅžUBAT 2006
  • cosmicrocketman

    cosmicrocket

    17 NÄ°SAN 2006
  • Rugiagialia

    Rugiagialia

    1 Ocak 2008