Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Tại sao checksum () trả về cùng một giá trị cho chuỗi khác nhau

SQL CHECKSUM () và MD5 là Hàm băm . Hashing là một thuật toán một chiều có thể lấy bất kỳ số ký tự / byte nào và trả về một số ký tự / byte cố định.

Có nghĩa là bất kể đầu vào của bạn là 1 ký tự hay một cuốn sách hoàn chỉnh (Chiến tranh và Hòa bình), bạn sẽ nhận được phản hồi cùng độ dài. Vì vậy đầu vào là vô số tổ hợp trong khi đầu ra là hữu hạn. Dựa vào đó, không thể tránh khỏi việc lấy cùng một Hash cho các giá trị khác nhau. Nó được gọi là Hash xung đột . Các thuật toán Hash tốt cố gắng giảm thiểu điều này để khó tìm thấy các giá trị va chạm này.

Nhưng đủ lý thuyết về băm. Đây chính xác là câu trả lời cho câu hỏi của bạn. vấn đề với CHECKSUM () ?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Các hàm vô hướng có thể được áp dụng trước khi lọc khi thực thi Câu lệnh SQL không?

  2. 'Số nhận dạng nhiều phần' là gì và tại sao nó không thể bị ràng buộc?

  3. thứ tự cài đặt thích hợp cho visual studio 2012 và SQL Server Management Studio 2012 trên win7 là gì?

  4. Khóa duy nhất của SQL Server 2005 có giá trị null

  5. Mẹo sử dụng SQL Server với Salesforce