Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Menyimpan nilai hash SHA1 di MySQL

Saya akan menggunakan VARCHAR untuk data panjang variabel, tetapi tidak dengan data panjang tetap. Karena nilai SHA-1 selalu 160 bit panjangnya, VARCHAR hanya akan membuang satu byte tambahan untuk panjang fixed- bidang panjang .

Dan saya juga tidak akan menyimpan nilai SHA1 sedang kembali. Karena hanya menggunakan 4 bit per karakter dan dengan demikian akan membutuhkan 160/4 =40 karakter. Tetapi jika Anda menggunakan 8 bit per karakter, Anda hanya membutuhkan bidang dengan panjang 160/8 =20 karakter.

Jadi saya sarankan Anda untuk menggunakan BINARY(20) dan UNHEX fungsi untuk mengonversi SHA1 nilai ke biner.

Saya membandingkan persyaratan penyimpanan untuk BINARY(20) dan CHAR(40) .

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
);

Dengan jutaan catatan binary(20) membutuhkan 44,56 juta, sedangkan char(40) membutuhkan 64,57 juta.InnoDB mesin.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Fungsi peringkat di MySQL

  2. Pesan tabel MySQL dengan dua kolom

  3. 2 Cara Mengembalikan Baris yang Mengandung Karakter Alfanumerik di MySQL

  4. Anda tidak dapat menentukan tabel target untuk pembaruan dalam klausa FROM

  5. Bagaimana cara mendapatkan jumlah hari perbedaan antara dua tanggal di MySQL?