Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

menyimpan kata sandi di SQL Server

Cara biasa untuk menyimpan kata sandi, adalah dengan menggunakan fungsi hash pada kata sandi, tetapi untuk salt itu sebelumnya. Penting untuk "menggaramkan" sandi, untuk mempertahankan diri dari meja pelangi serangan.

Jadi tabel Anda akan terlihat seperti itu

._______._________________.______________.
|user_id|hash             |salt          |
|-------|-----------------|--------------|
|12     |[email protected]|13%!#tQ!#3t...|
|       |...              |...           |

Saat memeriksa apakah kata sandi yang diberikan cocok dengan pengguna, Anda harus menggabungkan garam ke kata sandi yang diberikan, dan menghitung fungsi hash dari string hasil. Jika output fungsi hash cocok dengan hash kolom - ini adalah kata sandi yang benar.

Namun penting untuk dipahami bahwa ide salt-hash memiliki alasan khusus -- untuk mencegah siapa pun yang memiliki akses ke database mengetahui kata sandi siapa pun (dianggap masalah yang sulit untuk membalikkan output fungsi hash). Jadi misalnya, DBA bank, tidak akan dapat masuk ke rekening bank Anda, meskipun ia memiliki akses ke semua kolom.

Anda juga harus mempertimbangkan untuk menggunakannya jika menurut Anda pengguna Anda akan menggunakan sandi yang sensitif (misalnya sandi untuk akun gmail mereka) sebagai sandi untuk situs web Anda.

IMHO itu tidak selalu merupakan fitur keamanan yang dibutuhkan. Jadi Anda harus berpikir apakah Anda menginginkannya atau tidak.

Lihat artikel ini untuk ringkasan yang baik tentang mekanisme ini.

Pembaruan: Perlu disebutkan, bahwa untuk keamanan ekstra terhadap serangan yang ditargetkan untuk membalikkan hash kata sandi individu, Anda harus gunakan bcrypt , yang bisa sangat sulit untuk dihitung. (Tetapi kecuali jika Anda benar-benar takut dengan pria misterius berbaju hitam yang menargetkan basis data spesifik Anda, saya pikir sha1 cukup baik. Saya tidak akan memperkenalkan ketergantungan lain untuk proyek saya untuk keamanan ekstra ini. Yang mengatakan, tidak ada alasan untuk tidak menggunakan sha1 100 kali, yang akan memberikan efek yang sama).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server Management Studio 2008 Menjalankan pengguna di domain berbeda melalui VPN

  2. Bagaimana cara menghitung perbedaan jam (desimal) antara dua tanggal di SQL Server?

  3. SQL Server 2008 melewatkan tipe data sebagai parameter untuk fungsi

  4. Bagaimana Saya Dapat Mengurutkan Kolom 'Nomor Versi' Secara Umum Menggunakan Kueri SQL Server

  5. SQL Server:SUM() dari beberapa baris termasuk klausa where