Ne sütun tipi/uzunluğu Veritabanında Bcrypt karma şifre saklamak için kullanılır?
Bir veritabanında şifrelenmiş halde parola (BCrypt kullanarak) saklamak istiyorum. Doğru uzunlukta olurdu bu, ve iyi bir türü ne olurdu? Şifreleri BCrypt karma ile aynı uzunlukta her zaman.
EDİT
Örnek karma:
$2a$10$KssILxWNR6k62B7yiX0GAe2Q7wwHlrzhF3LqtVvpyvHZf0MwvNfVu
Bazı şifreleri karma sonra, BCrypt her zaman 60 karakter karma oluşturur gibi görünüyor.
2 DÜZENLEYİN
Uygulanması söz değil Sry. jBCrypt kullanıyorum.
CEVAP
Bcrypt için modüler crypt biçimi oluşur
$2$
,$2a$
$2y$
karma algoritma ve biçimini belirleyerek- iki basamaklı bir değer maliyet parametre gösteren,
$
izledi - 53 karakter uzunluğunda base-64 ile kodlanmış değeri (kullandıkları alfabe
.
,/
,0
–9
,A
–Z
,a
–z
Bu farklı için standard Base 64 Encoding alfabe) oluşan:- Tuz (etkin 132 deşifre bitlerin sadece 128 bit) 22 karakter
- Şifreli çıktı (etkin 186 deşifre bitlerin sadece 184 bit) 31 karakter
Böylece toplam uzunluğu 59 ya da 60 bayt sırasıyla.
2a biçimi olarak, 60 bayt gerekir. Ve böylece MySQL için CHAR(60) BINARY
or BINARY(60)
(fark hakkında daha fazla bilgi için The _bin and binary Collations) kullanmanızı tavsiye ederim.
CHAR
ikili güvende ve eşitlik sadece byte değerlerine bağlı değildir, ama gerçek harmanlama değil; en kötü durumda A
a
eşit olarak kabul edilir. Daha fazla bilgi için The _bin
and binary
Collations bkz.
Nasıl PHP bir karma parolalar için bcr...
BCrypt C kullanmak için iyi bir karma ...
SQL için en iyi uygulamalar sütun uzun...
Bir veritabanında etiketleri saklamak ...
Ne RSA anahtar uzunluğu SSL sertifikal...